找倍数问题,。算法好像有点不足。网上提交无法通过。求指点改进。
#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,输出是负值。。估计溢出了,,