kuschzzp 发表于 2019-11-21 22:21:46

C语言求助答案20和70有没有相对简单的算法,我从1开始,算了差不多20分钟。。。

#include<stdio.h>
int main()
{
        int x,i;   
        for(i=1;i<=100;i++)
        {
                x=i;
                if(++x%2==0)
                        if(++x%3==0)
                                if(++x%7==0)
                                        printf("%d ",x);                               
        }
}




28 70
--------------------------------
Process exited after 2.054 seconds with return value 0
请按任意键继续. . .


ba21 发表于 2019-11-21 22:24:42

这种算法20分钟你电脑有问题吧。我这1秒都不用

kuschzzp 发表于 2019-11-21 22:32:07

ba21 发表于 2019-11-21 22:24
这种算法20分钟你电脑有问题吧。我这1秒都不用

手算的。。。阅读程序写结果的题,就是有没有简单的手算方法

Croper 发表于 2019-11-21 23:06:51

本帖最后由 Croper 于 2019-11-21 23:08 编辑

看算法应该是找一个100以内的数X,且X+1能被2整除,X+2能被3整除,X+3能被7整除。输出X+3;
换句话说,就是
X%2=1,X%3=1,X%7=4,求X+3
-------------------------------------------
那么X-1肯定是6的倍数,
且又知道X-1除以7余3(也就是余-4);
而6除以7余-1,那么
X-1最小为6*4=24
6,7的最小公倍数是42,
因此X-1可以为24,24+42=66,24+42*2=108;
100以内的X为25或67;
X+3为28或70
页: [1]
查看完整版本: C语言求助答案20和70有没有相对简单的算法,我从1开始,算了差不多20分钟。。。