ブルーブリッジカップ20200413

1.数値の分解

2019を3つの異なる正の整数の合計に分解し、各正の整数に数値2と4が含まれないようにする必要があります。分解方法はいくつありますか?3つの整数を交換する順序は同じ方法と見なされます。たとえば、1000 + 1001 + 18と1001 + 1000 + 18は同じ方法と見なされます。

まず、2019を構成する3つの数値のタイプを分析しますか?
1. ABCの配置は6種類(ABC、ACB、BAC、BCA、
CAB、CBA)です
。2. AABの配置は3種類(AAB、ABA、BAA)と3.AAAの種類があります。
この問題では、2019を3つの異なる正の整数の合計に分解する必要があります。つまり、ABCクラスの組み合わせのみが保持されます。j= i + 1

public class Zichuan {	
	public static void main(String[] args) {
		int n = 2019;
		int num = 0;
		for (int i = 1; i < n; i++) {
			if ((i + "").indexOf("2") != -1 || (i + "").indexOf("4") != -1)
				continue;
			for (int j = i + 1; j < n; j++) {
				if ((j + "").indexOf("2") != -1 || (j + "").indexOf("4") != -1)
					continue;
				int k = n - i - j;
				if (i == k || j == k || i == j)
					continue;
				if (k > 0 && (k + "").indexOf("2") == -1 && (k + "").indexOf("4") == -1)
					num++;
			}
		}
		System.out.println(num / 3);
	}

}



2.特別な数値の合計

Xiao Mingは、2、0、1、9(先頭の0を除く)を含む数値に非常に関心があります。1から40までの数値には、1、2、9、10から32、39、40、
合計28が含まれます。 、彼らの合計は574です。
1からnまでのすべてのそのような数の合計は何ですか?

public class Zichuan {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int result=0;
		for(int i=1;i<=n;i++) {
			String s=Integer.toString(i);
			if(s.contains("1")||s.contains("2")||s.contains("9")||s.contains("0")) {
				
				result=i+result;
			}
		}
		System.out.println(result);
	}
}


元の記事を44件公開 Likes2 訪問数540

おすすめ

転載: blog.csdn.net/qq_43699776/article/details/105498907