这个题目是什么意思

来源:6-1 什么是数组

Wistsecret

2018-10-01 14:40

小张和晨儿有一天在帮爸爸收银,现在他们手上有n枚硬币,聪明的小张决定将这堆硬币分为s堆,这样子有人要找零(找零数额为1-n)的时候他只需要把其中的一堆或几堆拿出来给他就行了。小张问晨儿,你知道怎么摆吗。晨儿作沉思状,偷偷在桌子底下用QQ上把这个问题发给了你。聪明的你能帮助晨儿解决这个问题吗?

Input

输入数据一个组数T
共有T组测试实例,每组测试实例包含一行,由一个整数n组成

Output

对于每组输入数据你将输出一个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的范围)

Sample Input

2
6
2

Sample Output

3
2


写回答 关注

3回答

  • 喵喵喵two
    2018-10-14 22:27:12
    已采纳

    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+"堆");

    }


    }


    喵喵喵two

    不过这串代码只算一次,若需要算T次,加个循环控制就可以啦

    2018-10-14 22:33:56

    共 1 条回复 >

  • 踏风忆梦
    2018-10-31 11:37:42

    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+"堆");

  • 龘饕餮
    2018-10-02 01:53:36

    找多少钱,就拿多少硬币

    Wistse...

    那用java怎么写?

    2018-10-02 15:11:41

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1167143 学习 · 17927 问题

查看课程

相似问题