| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1544 人关注过本帖
标题:找倍数问题,。算法好像有点不足。网上提交无法通过。求指点改进。
只看楼主 加入收藏
萝莉小纯情
Rank: 1
等 级:新手上路
帖 子:73
专家分:6
注 册:2012-12-8
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:56 
找倍数问题,。算法好像有点不足。网上提交无法通过。求指点改进。
#include<stdio.h>
int  fun(int n)
{
int i=0,a[100],j;
long sum=0;
while (n!=0)
{
a[i++]=n%2;
n=n/2;
}
for(j=i-1;j>=0;j--)
{
sum*=10;
sum+=a[j];
}
return sum;
}
int main()
{
long i,a[50000];
int n;
for(i=1;i<50000;i++)
a[i]=fun(i);
while(scanf("%d",&n)!=0)
{
for(i=1; a[i]%n!=0; i++);
printf("%d\n",a[i]);
}
}
对于任意给定的整数n,存在最小的由0.1构成的整数是它的倍数。求最小数N..
我用了long型了。可当输入144,输出是负值。。估计溢出了,,
搜索更多相关主题的帖子: return 
2012-12-10 12:54
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
0.1是整数???

DO IT YOURSELF !
2012-12-10 13:02
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
你再详细的说一下你的需求??
你的题目说的什么意思啊 ?
while (n!=0)
{
a[i++]=n%2;
n=n/2;
这个子函数你干嘛的、?
怎么看起来像是转化为2进制的

2012-12-10 13:32
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
#include<stdio.h>
#define MAXNUM  1024

unsigned long   fun(int n)
{
    int i = 0;
    long a[MAXNUM] = {0};
    int j = 0;
    unsigned long sum = 0;

    while (n != 0)
    {
        a[i] = n % 2;
        n /= 2;
        i++;
    }

    for(j = i-1;j >= 0;j--)
    {
        sum *= 10;
        sum += a[j];
    }
    return sum;
}

int main()
{
    int  i = 0;
    unsigned  long a[MAXNUM] = {0};
    int n = 0;
    for(i = 1;i < 50000;i++)
        a[i] = fun(i);
    while(scanf("%d",&n) != EOF)//这里有问题 应该是EOF
    {
        for(i = 1;a[i] % n != 0; i++);
            printf("%d\n",a[i]);
    }
    return 0; //这里应该有返回值
}
-----------
有些数貌似是很大。。
99 也没有
2012-12-10 13:47
萝莉小纯情
Rank: 1
等 级:新手上路
帖 子:73
专家分:6
注 册:2012-12-8
收藏
得分:0 
回复 2楼 wp231957
就比如2的时候输出10,7的时候输出1001,,就是由0和1构成的最小倍数。,
2012-12-10 13:47
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 5楼 萝莉小纯情
终于明白楼主意思了,输出数是一个10进制数
他是输入数的倍数,只能由0 和 1组成,还要求尽量小

容我想想


[fly]存在即是合理[/fly]
2012-12-10 13:56
萝莉小纯情
Rank: 1
等 级:新手上路
帖 子:73
专家分:6
注 册:2012-12-8
收藏
得分:0 
回复 2楼 wp231957
就比如2的时候输出10,7的时候输出1001,,就是由0和1构成的最小倍数。,
2012-12-10 13:59
萝莉小纯情
Rank: 1
等 级:新手上路
帖 子:73
专家分:6
注 册:2012-12-8
收藏
得分:0 
回复 6楼 azzbcc
嗯。好的。谢谢啊。我觉得我那算法还行。就是有些数的倍数太大。超出范围了。。
2012-12-10 14:02
萝莉小纯情
Rank: 1
等 级:新手上路
帖 子:73
专家分:6
注 册:2012-12-8
收藏
得分:0 
回复 3楼 daniel_
存储由0.1构成的整数。。
2012-12-10 14:04
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
回复 9楼 萝莉小纯情
我看懂了  
你的程序我也看懂了

--
有些数是不是没有这么这样的倍数呢???
这个值得考虑,你应该写个出错返回的
2012-12-10 14:07
快速回复:找倍数问题,。算法好像有点不足。网上提交无法通过。求指点改进。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017404 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved