黑马程序员技术交流社区
标题:
分享一下近几期的点招题 [附答案+分析]
[打印本页]
作者:
L1ub0w3n
时间:
2016-6-17 22:59
标题:
分享一下近几期的点招题 [附答案+分析]
假设某小卖铺钱柜里仅有1元和5角的硬币各若干,这时来了一个顾客想兑换一张20元的钞票。(6分)
请编写程序,输出所有可能的兑换组合
要求:(1)每种钞票/硬币的张数/个数不为0;
(2)每种组合输出占一行。如下所示为输出中的一行:
1元的有1张,5角的硬币有38个
打印格式:
1元的有1张,5角的硬币有38个
1元的有2张,5角的硬币有36个
1元的有3张,5角的硬币有34个
作者:
L1ub0w3n
时间:
2016-6-17 23:05
这道题比较简单。用到Java基础语言中的if语句和for语句。
分析:看到了打印格式。心里就已经应该明白了肯定是要用到for语句的。
其次就是题目硬性规定了 必须每种硬币都要有。不可以20个1元硬币或者40个5毛硬币这样的去换。所以就规定了硬性条件。就是 1元硬币!=0 && 5毛硬币!=0 代码要建立在这个基础上。
所以就是if(x!=0 && y!=0) 也告诉了我们要定义两个变量 x y分别代表两种币种。1元的基础上是1。5毛的基础是2。因为如果5毛的规定初始变量是1的话。那么就换多了。
然后进行循环。
代码如下:
public class Test01 {
public static void main(String[] args) {
//定义1元硬币的数量和5毛硬币的数量
int x = 1,y = 2;
if(x!=0 && y!=0){
for (int m = 1; m < 20; m++) {
y = (20 - m) * 2;
System.out.println("1元有"+m+"个,5毛的硬币有"+y+"个。");
}
}
}
}
复制代码
作者:
孟小垚
时间:
2016-6-18 19:05
学习了!谢谢
作者:
lionc123
时间:
2016-6-19 00:24
谢谢分享 ,看了一下下,什么时候的题目
作者:
JunFreeman
时间:
2016-6-19 13:24
for (int i = 1; i < 20; i++) {
for (int j = 1; j < 40; j++) {
if ((i + 0.5 * j) == 20) {
System.out.println("1元的有" + i + "张,5角的硬币有" + j + "个");
}
}
}
两个for循环加if判断就好啦
作者:
18566190744
时间:
2016-6-19 16:06
for (int i = 1; i < 20; i++) { //这里就已经定义了不能一元不等于0,和五毛不能等与0
int j=(20-i)*2;
System.out.println("1元有"+i+"个,5毛的硬币有"+j+"个");
}
作者:
lt3886930
时间:
2016-6-19 17:06
虽然还不到考试的时候,但是收藏了解总是没错的.
作者:
gjtdxjd
时间:
2016-6-19 18:49
感谢分享,学习了!
作者:
一个大西瓜
时间:
2016-6-19 19:27
int b;
for(int a=1;a<20;a++)
{
b=(20-a)*2;
System.out.println("1元的有"+a+"张,5角的硬币有"+b+"个");
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2