请C高手为我解答以下问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:08:46
请C高手为我解答以下问题: 有以下程序:{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)} 这题目的思路跟解答过程是怎样的,望大家帮帮我!

很简单,只要最先的X加1后能被2整除,再加1后能被3整除,再加1后能被7整除就可以了。
最终加过2的X的值应该是28和70。
笨办法是可以一个一个试,在100以内能被7整除数只有13个:
7、14、21、28、35、42、49、56、63、70、77、84、91。
首先可以排除奇数:7、21、35、49、63、77、91,减2后也不能被2整除。
现在剩下14、28、42、56、70、84。
再次排除能够被3整除的数:42、84,减1后不能被3整除。
现在剩下14、28、56、70,减1后能被3整除的只有28和70。
所以最后输出结果是28 70。

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

int x,i;//声明整型变量 x ,i
for (i=1;i<=100;i++)//对1~100之间的数进行判断
{x=i;//将i(1)赋给x(1)
if(++x%2==0)//判断++x(2)对2取余是否等于0
if(++x%3==0)//假如++x(2)对2取余等于0 判断++x(3)对3取余是否等于0
if(++x%7==0)//假如++x(3)对3取余等于0 判断++x(4)对7取余是否等于0
printf("%d",x)//假如++x(4)对7取余为0输出x 因为x%4(4!=0)故进入下一次循环
}
//括号内的数为i=1时表达式的值
运行结果为 28,70