Java键盘输入n.输出用1元,2元,5元组成n的所有方法
答案:4 悬赏:50 手机版
解决时间 2021-02-18 23:29
- 提问者网友:雨不眠的下
- 2021-02-18 19:25
Java键盘输入n.输出用1元,2元,5元组成n的所有方法
最佳答案
- 五星知识达人网友:雾月
- 2021-02-18 20:09
我想楼主应该是这个意思吧,先写个最简单的实现,俩个循环:
public static List
public static List
- > m4(Integer num){
List
- > res = new ArrayList
- >();
for(int i = 0;i < num/5;i ++){
for(int j = 0;j <= (num - 5 * i)/2;j ++){
List
int k = num - 5 * i-2*j;
group.add(i);
group.add(j);
group.add(k);
res.add(group);
}
}
for (int i = 0; i < res.size(); i++) {
StringBuffer sb = new StringBuffer();
sb.append(res.get(i).get(0) + "张 5 元,");
sb.append(res.get(i).get(1) + "张 2 元,");
sb.append(res.get(i).get(2) + "张 1 元");
System.out.println(sb.toString());
}
return res;
}
在 main 方法中 调用 m4方法即可
全部回答
- 1楼网友:往事埋风中
- 2021-02-18 20:53
先scanner个参数count,先除五,得n余m,m除2,得x余y,,结果输出为:n张5元的,x张2元的,y张1元的。没了,就这样,非常简单
- 2楼网友:廢物販賣機
- 2021-02-18 20:39
import java.util.Scanner;
public class Money {
public static void main(String args[])
{
Scanner inScanner=new Scanner(System.in);
int money=inScanner.nextInt();
boolean flag=true;
while(flag)
{
cal( money);
money=inScanner.nextInt();
if(money==0)
{//输入2结束
flag=false;
}
}
}
public static void cal(int total)
{
int a1=total/5;//最多能有这么多个5组成
for(int i=0;i<=a1;i++)
{//将5的个数逐次递增
int a2=(total-i*5)/2;//在需要i个5的情况下可以最多有a2个2组成
for(int j=0;j<=a2;j++)
{//将2的个数桌次递增
int a3=total-i*5-j*2;
System.out.println("5="+i+" 2="+j+" 1="+a3);
}
}
}
}
数据结构中有个叫做“货币问题”的问题,你可以看看那个,加深一些对类似问题的理解。
希望对你有帮助。
public class Money {
public static void main(String args[])
{
Scanner inScanner=new Scanner(System.in);
int money=inScanner.nextInt();
boolean flag=true;
while(flag)
{
cal( money);
money=inScanner.nextInt();
if(money==0)
{//输入2结束
flag=false;
}
}
}
public static void cal(int total)
{
int a1=total/5;//最多能有这么多个5组成
for(int i=0;i<=a1;i++)
{//将5的个数逐次递增
int a2=(total-i*5)/2;//在需要i个5的情况下可以最多有a2个2组成
for(int j=0;j<=a2;j++)
{//将2的个数桌次递增
int a3=total-i*5-j*2;
System.out.println("5="+i+" 2="+j+" 1="+a3);
}
}
}
}
数据结构中有个叫做“货币问题”的问题,你可以看看那个,加深一些对类似问题的理解。
希望对你有帮助。
- 3楼网友:duile
- 2021-02-18 20:20
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
while(num > 0){
num = num - 2;
if(num > 0){
System.out.println(num);
}else{
}
}//我没明白提问者是怎么个意思!
int num = sc.nextInt();
while(num > 0){
num = num - 2;
if(num > 0){
System.out.println(num);
}else{
}
}//我没明白提问者是怎么个意思!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯