百思不得解的循环题目。

盼哥哥 2016-07-15 10:57:38
一个非1的自然数。
加1是2的倍数
加2是3的倍数
加3是4的倍数
加4是5的倍数
加5是6的倍数
加6是7的倍数
求这个数是多少?

public class OneAddTo100Except3{
public static void main(String[]args){
//初始结果值为1
int result = 1;
//循环体开始,从1到1000
for (int i = 1; i<= 1000; i++){
result += i;
//加1被2整除,加2被3整除,加3被4整除,加4被5整除,加5被6整除,加6被7整除
if ((result+1)%2 == 0 &&
(result+2)%3 == 0 &&
(result+3)%4 == 0 &&
(result+4)%5 == 0 &&
(result+5)%6 == 0 &&
(result+6)%7 == 0){
//若条件为真,则输出结果
System.out.println("The result is:" + result);
}
}
}
}

输出时是
run:
The result is:5461
The result is:7141
The result is:25201
The result is:39061
The result is:56281
The result is:73921
The result is:79801
The result is:97021
The result is:103741
The result is:127261
The result is:157081
The result is:189421
The result is:259561
The result is:270481
The result is:352381
The result is:353221
The result is:446041
The result is:460321
成功构建 (总时间: 0 秒)
问题:循环体最大是1000,为什么结果会输出大于1000的数字?百思不得解。
...全文
294 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nikyotensai 2016-07-19
  • 打赏
  • 举报
回复
又一个结帖率0
nikyotensai 2016-07-19
  • 打赏
  • 举报
回复
引用 1 楼 u013981816 的回复:
因为你是 result=result+i。。。
+1
caonimmmma 2016-07-18
  • 打赏
  • 举报
回复
其实这个题目小学3年级小朋友都会, 加1是2的倍数 加2是3的倍数 加3是4的倍数 加4是5的倍数 加5是6的倍数 加6是7的倍数 相当于 减1能被2,3,4,5,6,7同时整除,这个数就等于2,3,4,5,6,7的所有公倍数加1 over!
qq_35623620 2016-07-16
  • 打赏
  • 举报
回复
我小白,忘记写括号了 哈哈
qq_35623620 2016-07-16
  • 打赏
  • 举报
回复
我是小白,楼上说的是这意思吗? class A public static void main(String[] args) { for(x=1;x<1000;x++) int y=1+x*10 if( (y+1)%2==o&& (y+2)%3==o&& (y+3)%4==o&& (y+4)%5==o&& (y+5)%6==o&& (y+6)%7==o&&) SYstem.out.println("y"+y); break }
scmod 2016-07-16
  • 打赏
  • 举报
回复
其实+1被2整除肯定是个奇数,加4被5除尾数只能是1了,所以1开始+10一步长就好
盼哥哥 2016-07-15
  • 打赏
  • 举报
回复
已经重新修改过,现在运行结果正确了。 非常感谢老师指点!!!

public class FindTheNumber {
    public static void main(String[]args){

                //循环体开始,从1到1000
                for (int result = 2; result<= 10000; result++){
                    
                    //加1被2整除,加2被3整除,加3被4整除,加4被5整除,加5被6整除,加6被7整除
                    if ((result+1)%2 == 0 &&
                        (result+2)%3 == 0 &&
                        (result+3)%4 == 0 &&
                        (result+4)%5 == 0 &&
                        (result+5)%6 == 0 &&
                        (result+6)%7 == 0){
                        
                        //若条件为真,则输出结果
                        System.out.println("The result is:" + result);
                        
                        //找出最小符合条件的数字后跳出循环体。
                        break;
                    }
                }
    }
}
输出: run: The result is:421 成功构建 (总时间: 0 秒)
盼哥哥 2016-07-15
  • 打赏
  • 举报
回复
秒懂,1累加到100时,结果已经是5050了,何况是1累加到1000
catWr 2016-07-15
  • 打赏
  • 举报
回复
因为你是 result=result+i。。。

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧