简单的加法 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