|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 1999杨小小 于 2021-2-13 18:17 编辑
两层循 环的意思我大概能理解,但里面的if(j-i>4)和goto存在的作用不清楚,麻烦各位前辈指点下
- for (i = 1; i < cubed; i += 2)
- {
- for (j = i; j < cubed; j += 2)
- {
- sum += j;
- if (sum == cubed)
- {
- if (j - i > 4)
- {
- printf("%d = %d + %d ... + %d\n", cubed, i, i+2, j);
- }
- else
- {
- printf("%d = %d + %d + %d\n", cubed, i, i+2, i+4);
- }
- goto FINDIT;
- }
- if (sum > cubed)
- {
- sum = 0;
- break;
- }
- }
- }
- FINDIT:
- return 0;
- }
复制代码
- if (j - i > 4)
- {
- printf("%d = %d + %d ... + %d\n", cubed, i, i+2, j);
- }
- else
- {
- printf("%d = %d + %d + %d\n", cubed, i, i+2, i+4);
- }
- goto FINDIT;
复制代码
j-i>4 是判断这个数是几个数相加的,因为一个数字,j循环一次
如果数字多就用第一种输出方法输出,否则就用第二种
goto 语句的话是用来跳出循环的
两层循环的话break,不太好跳出循环
|
|