Wistsecret
2018-10-01 14:40
小张和晨儿有一天在帮爸爸收银,现在他们手上有n枚硬币,聪明的小张决定将这堆硬币分为s堆,这样子有人要找零(找零数额为1-n)的时候他只需要把其中的一堆或几堆拿出来给他就行了。小张问晨儿,你知道怎么摆吗。晨儿作沉思状,偷偷在桌子底下用QQ上把这个问题发给了你。聪明的你能帮助晨儿解决这个问题吗?
输入数据一个组数T
共有T组测试实例,每组测试实例包含一行,由一个整数n组成
对于每组输入数据你将输出一个s(s尽可能小)
tips:
在第一个样例中,小张可以将6枚硬币分为了1枚,2枚,3枚三堆
在这种情况下
当需要找1元时,给出1枚这堆
当需要找2元时,给出2枚这堆
当需要找3元时,给出3枚这堆或给出1枚、2枚这两堆
当需要找4元时,给出1枚、3枚这两堆
当需要找5元时,给出2枚、3枚这两堆
当需要找6元时,给出1枚、2枚、3枚这三堆
在第二个样例里,小张可以将2枚硬币分为了1枚,1枚两堆
(可以保证在运算范围不会超过Integer的范围)
2 6 2
3 2
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("输入硬币的个数n:");
int n=input.nextInt();
int sum=0;
int count=0;
for(int i=1;sum<n;i++) {
sum+=i;
count++;
}
System.out.println("这n个硬币可一分为"+count+"堆");
}
}
int n=input.nextInt();
int count=0;
for(int i=0;n!=0;i++) {
System.out.println("第"+(i+1)+"堆:"+(n-n/2));
n=n/2;
count++;
}
System.out.println("这n个硬币可一分为"+count+"堆");
找多少钱,就拿多少硬币
Java入门第一季(IDEA工具)升级版
1167143 学习 · 17927 问题
相似问题