ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

第十届蓝桥杯Java B组 数的分解

2021-03-20 21:01:08  阅读:193  来源: 互联网

标签:10 Java 第十届 int t2 add 蓝桥 flag hs1


数的分解

Description

把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?

注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和1001+1000+18 被视为同一种。

Input

没有输入。

Output

这是一道结果填空的题,你只需要算出结果后提交即可。

本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

package test2019;

import java.util.HashSet;

public class _数的分解_ {
	public static void main(String[] args) {
		int count=0;
		for(int i=1;i<=2019;i++)
		{
			
			for(int j=1;j<=2019;j++)
			{
				for(int k=1;k<=2019;k++)
				{
					if(i+j+k==2019&&i!=j&&i!=k&&j!=k) {//三个数不能相同
						HashSet<Integer> hs1 = new HashSet<Integer>();//将三个数每个位置上的数字存放到一个hashset中,去重
						int t1=i;
						while(t1!=0) {
							hs1.add(t1%10);
							t1/=10;
						}
						int t2=j;
						while(t2!=0) {
							hs1.add(t2%10);
							t2/=10;
						}
						int t3=k;
						while(t3!=0) {
							hs1.add(t3%10);
							t3/=10;
						}
						int flag=0;
						for(int x:hs1) {
							if(x==2||x==4) //如果三个数中包含数字2或4,退出循环并标记,说明这三个数不符合条件
							{
								flag=1;
								break;
							}
						}
						if(flag==0) //如果走完上面的循环flag还是0,说明没有2和4,这三个数是符合条件的
						{
							count++;
						}
						
						
					}
				}
			}
		}
		System.out.println(count/6);
	}
}

做法有些啰嗦,轻喷

标签:10,Java,第十届,int,t2,add,蓝桥,flag,hs1
来源: https://blog.csdn.net/weixin_44775375/article/details/115034669

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有