Zongminxie 发表于 2018-11-1 22:44:13

桂电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");

}

李兵 发表于 2018-11-2 15:28:19

大神厉害,C视频看了30集,现在改汇编了,老年人就是深入不了,崇拜大神,再次···········沙发{:5_95:}

Zongminxie 发表于 2018-11-6 08:43:22

没有版主大大说一下嘛
页: [1]
查看完整版本: 桂电ACM的题,如何优化解决该问题的算法,提升效率