简单的加法 Java 暴力破解

简单的加法 Java 暴力破解

题目:
首先给出简单加法算式的定义:
  如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为简单的加法算式。
  例如:i=3时,3+4+5=12,有一个进位,因此3+4+5不是一个简单的加法算式;又如i=112时,112+113+114=339,没有在任意数位上产生进位,故112+113+114是一个简单的加法算式。
 
问题: 
给定一个正整数n,问当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