桂电ACM的题,如何优化解决该问题的算法,提升效率
本帖最后由 Zongminxie 于 2018-11-1 22:48 编辑任意给定一个自然数N,可以找出这样一个相应的M值,要求M是N的倍数,
且它的所有各位数字都是由0或1组成,并要求M尽可能小。
输出符合题目描述的M值。如果没有符合要求的数,输出“NONE”
我的代码 系统说超过时间限制,请大神提点。
#include<stdio.h>
#include<math.h>
void f();
int main()
{
f();
return 0;
}
void f()
{
int n;
int m = 0;
scanf_s("%d", &n);
if (n >= 2 && n <= 100)
{
int a, c, i, j;
for (i = 0, a = 0; m += n; i++)
{
if (a > m)
{
printf("NONE");
break;
}
a = m;
for (j = 0; a != 0; j++)
{
a = a /10;
}
for (a = m; j != 0; j--)
{
c = a / pow(10, j - 1);
if (c != 0 && c != 1)
break;
a = a - c * pow(10, j - 1);
}
if (j == 0)
{
printf("%d\n", m);
break;
}
}
}
else
printf("NONE");
} 大神厉害,C视频看了30集,现在改汇编了,老年人就是深入不了,崇拜大神,再次···········沙发{:5_95:} 没有版主大大说一下嘛
页:
[1]