你有没有发现
你的循环条件变了?小鸡32只,公鸡100只,母鸡200只。这样已经超过了一百元了
,你解决的不是百元买百鸡的问题了!还有这个循环执行了次数是不同的!因为这个i
*
0.5
+
j
*
2
+
k
*
3的值
将很快到达一百!
publicstatic
void
splitMoney(int
n){
int
count
=
0//此变量为计数器
for
(int
b
=
0
b
<=
n
b=b+5)
{
for
(int
c
=
0
c
<=
n
c=c+2)
{
for
(int
d
=
0
d
<=
n
d=d+1)
{
if(b>=0&&c>=0&&d>=0&&(n-(b+c+d))>=0){
System.out.print(n
+
"元="
+
(b/5)
+
"个5元
+"
+
(c/2)
+
"个2元
+"
+
(d/1)
+
"个1元
+"
+
(n
-
(b+c+d))+"个1元\n")
count++
}
}
}
}
System.out.println("\n"
+
"总共有"
+
count
+"种方法")
希望对你有用
public static void main(String[] args) {int total=100// 一共100钱
int gong, mu, xiao// 公鸡母鸡小鸡初始
for(gong=0gong <= 20gong++) {
total=100 - gong * 5
for(mu=0mu <= total / 3mu++) {
total=total - mu * 3
for(xiao=0xiao <= 3 * totalxiao+=3) {
int i=xiao / 3
if(total - i == 0) {
System.out.println("公鸡:" + gong + "只母鸡" + mu + "只小鸡:" + xiao)
}
}
}
}
}