题目
答案
package test; public class Main { public static void main(String[] args) { int cnt=0; for(int i1=1;i1<2019;i1++) { for(int i2=i1+1;i2<2019;i2++) { int i3=2019-i1-i2; if(i3<=i2)continue; else { boolean judge=true; int ans1=i1; int ans2=i2; int ans3=i3; while(ans1>0) { int a=ans1%10; if(a==2||a==4) { judge=false; break; } ans1/=10; } while(ans2>0) { int a=ans2%10; if(a==2||a==4) { judge=false; break; } ans2/=10; } while(ans3>0) { int a=ans3%10; if(a==2||a==4) { judge=false; break; } ans3/=10; } if(judge) { cnt++; System.out.println(i1+" "+i2+" "+i3); } } } } System.out.print(cnt); } }
这段代码的功能是找出所有满足以下条件的三个整数组合 (i1, i2, i3)
:
i1 + i2 + i3 = 2019
i1 < i2 < i3
i1, i2, i3
中不包含数字2
或4
让我们逐步分析代码的运行过程:
代码分析
- 变量定义:
cnt
:用于计数符合条件的组合数目,初始为0
。
- 嵌套循环:
- 外层循环
for(int i1=1; i1<2019; i1++)
:遍历可能的第一个数i1
,范围是1
到2018
。 - 内层循环
for(int i2=i1+1; i2<2019; i2++)
:对于固定的i1
,遍历可能的第二个数i2
,范围是i1+1
到2018
。 - 计算第三个数
i3
:根据i1, i2
计算第三个数i3 = 2019 - i1 - i2
。
- 条件判断:
if (i3 <= i2) continue;
:如果i3
小于等于i2
,则跳过当前循环,因为要求i1 < i2 < i3
。boolean judge = true;
:设置一个布尔变量judge
,用于判断i1, i2, i3
是否满足不包含数字2
或4
。
- 检查每个数的每位数字:
- 通过
while (ans1 > 0)
、while (ans2 > 0)
、while (ans3 > 0)
循环,分别提取i1, i2, i3
的每一位数字,并检查是否包含数字2
或4
。 - 如果发现包含
2
或4
,则将judge
设置为false
,并且跳出当前循环。
- 判断结果:
- 如果
judge
为true
,表示i1, i2, i3
符合条件,增加cnt
的计数,并输出这个组合。 - 最后输出符合条件的组合数目
cnt
。
总结
这段代码的目的是利用嵌套循环和条件判断,找出满足特定条件的三个整数组合,并统计符合条件的组合数目。条件包括三个数之和为 2019
,且这三个数均不包含数字 2
或 4
。
个人号推广
博客主页
多多!-CSDN博客
Web后端开发
https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482
Web前端开发
https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482
数据库开发
https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482
项目实战
https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482
算法与数据结构
https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482
计算机基础
https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482
回忆录
https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482