Javaの単純加算ブルートフォース

Javaの単純加算ブルートフォース

タイトル:
定義の最初に、単純な加算式:
  式がある場合(I)+(I + 1 )+(I + 2)、(I> = 0)、 処理の計算、誰ビット現れます単純加算式と呼ばれているキャリー、。
  例えば:私は3は、3 + 4 + =場合 = 12 5は、 キャリーがあるので、3 + 4 + 5は、単純な加算式ではない。私なら= 112 + 113 + 114 112 = 339、 任意なし上のキャリー桁が、それは112 + 113 + 114で単純加算式です。
 
問題: 
正の整数を考えると、N、場合Q I 0よりも少ないnよりは、式(I)+(I + 1の数 )+(I + 2)は、単純な加法式です。ここで、N <10000。

コード

import java.util.Scanner;


public class 简单加法
{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 问题:给定一个正整数n,问当i大于等于0且小于n时,有多少个算式(i)+(i+1)+(i+2)是简单加法算式。其中n<10000。
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int num=0;//用于计数
		//暴力破解
		for (int i = 0; i < n; i++)
		{
			//不管有没有这个位,都取出来
			int a=i/10000;
			int b=i/1000;
			int c=i/100;
			int d=i/10;
			//不管有没有这个位,都取出来
			int sum=i+(i+1)+(i+2);
			int r=sum/10000;
			int x=sum/1000;
			int y=sum/100;
			int z=sum/10;
			//进行比较,如果有不相等的位数就说明是进位了,就直接进入下一个数
			if (r>a||x>b||y>c||z>d)
			{
				continue;
			}else {
				num++;
			}
		}
		//输出
		System.out.println(num);
	}

}

入力:

10

出力:

3
リリース8元の記事 ウォンの賞賛6 ビュー173

おすすめ

転載: blog.csdn.net/Hackergu/article/details/105085471