import java.util.Scanner;
/*
题目1:
一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。
输入描述:
一个目标整数T (1 <=T<= 1000)
输出描述:
该整数的所有表达式和表达式的个数。如果有多种表达式,输出要求为:
1.自然数个数最少的表达式优先输出
2.每个表达式中按自然数递增的顺序输出,具体的格式参见样例。在
每个测试数据结束时,输出一行”Result:X”,其中X是最终的表达式个数。
示例:
9
输出:
9=9
9=4+5
9=2+3+4
Result:3
解题思路:
倒序相加从n开始 如果i i-1 i-2 =n 则打印输出
如果 i+i-2+i-3>n则跳出循环 如果小于则继续循环
*/
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
ziRnshu(n);
}
private static void ziRnshu(int n) {
int sum=0,count=0;
//开始循环
for(int i=n;i>1;i--){
StringBuilder s1=new StringBuilder();
sum=0;
for (int j = i; sum<n&&j>0; j--) {
sum=sum+j;
s1.append(j);
if(sum<n){
s1.append("+");
}else if(sum==n){
s1.append("=9");
StringBuilder reverse = s1.reverse();
System.out.println(reverse);
count++;
}else {
break;
}
}
}
System.out.println(count);
}
}
刷题1:一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。
最新推荐文章于 2024-08-19 22:25:03 发布