输入一个数N整数,每次都可以取一个小于等于这个整数一半的数,把这个数放在N的左边组成一个新

来源:百度知道 编辑:UC知道 时间:2024/06/22 14:48:45
输入一个数N整数,每次都可以取一个小于等于这个整数一半的数,把这个数放在N的左边组成一个新数 要求列出所有可能并且计算个数
例如 10
110
210
1210
310
1310
410
1410
2410
12410
510
1510
2510
12510
是这样的···10的一半是5
然后列出所有比5小的可能就是 510 410 310 210 110然后小于等于5的一半的又会有1和2 所以再列出这两种
就是1510 2510 同样 小于等于4的一半的是1和2 那么就是1410 2410 以后继续 1310 1210 直到左往右数第一个数是1为止所以综合排列起来就是
10
110
210
1210
310
1310
410
1410
2410
12410
510
1510
2510
12510
当然这个只是10的···要求的是输入N···然后列出所有的可能

拜托楼上的两位题目理解清楚,你们只做了一个层次,这个一看就是要递归的。
因为小于等于10的一半是5,4,3,2,1,所以510,410,310,210,110,因为5的一半是2,1,所以2510,1510,因为2的一半是1,所以12510,
每个数字都是横向看的。例如12510这个数,1是2的一半,2比5的一半小,5是10的一半,所以满足条件。每一层都要使最后的左添加数为1才结束。
public class Test {

public static void main(String[]args){
Test t = new Test();
Scanner s=new Scanner(System.in);
System.out.println("请输入一个整数:");
int info=s.nextInt();
t.getNum(info,info);
}

public void getNum(int left,int right){
if(left == 1){
return;
}
else{
int temp = left/2;
for(int i=1;i<=temp;i++)
{
String ss=String.valueOf(i);
String str=String.valueOf(right);
System.out.println(ss+str);
int rightTemp = Integer.parseInt(ss + str);
getNum(i,rightTemp);
}
}
}

}

你这个结果有问题吧.既然是小于等于N的一半.
例如 10,那么就是1,2,3,4,5.加到10的左边也只是110,210,310,410,5

写一个求∑n的函数, 在主函数中输入一个整数求出该数的累加和(1+2+3+...n). 有一个整数N,N可以分解成若干个整数之和,问如何分解能使这些数的乘积最大。(c语言) 1. 输入任何一个整数n,求1到n之间的每个数的平方加上立方的累加计值sum。速求答案。。 输入n个整数,求n个数的平均值,并输出比平均值大的数 将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数 一个不是整数的数怎样取整?????? JAVA 任意输入一个整数求各位数之和 输入1个整数n(1<=n<=10),然后输入n个整数,按逆序输出这些数 写一个求∑n!的函数, 在主函数中输入一个整数求出该数的累加和(1!+2!+3!+...20!). 写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数