java算法求解。 1.有10张1元、10张5元、10张10元在一堆。抓一把共有多少种结果?
发布网友
发布时间:2022-04-26 05:03
我来回答
共4个回答
热心网友
时间:2023-10-06 05:17
161 - 1 = 160 种,最后要剪掉一,因为有一种情况是xyz都为零
这是与题目相违背的,因为你不管怎么样都要抓一下
x 代表 1块, y代表5块, z代表十块
用集合来做,TreeSet 自动去除重复且帮你排序。
import java.util.*;
public class Number
{
TreeSet<Integer> set = new TreeSet<Integer>()
Integer total;
public Number()
{
cal(set);
}
private void cal(TreeSet<Integer> element)
{
for(int x =0; x<=10; x++)
for(int y =0; y<=10; y++)
for(int z =0; z<=10; z++)
{
total = x + 5*y + 10*z;
element.add(total);
}
//算出多少种
System.out.print((element.size()-1)+"\n");
//打印出来
for(Integer num: element)
if(num != 0)
System.out.print(num+" ");
}
}
热心网友
时间:2023-10-06 05:18
300种
热心网友
时间:2023-10-06 05:18
boolean v[]=new boolean[161];
int i=0,j=0,k=0;
/*
for(i=0;i<161;i++) v[i]=true;
*/
for(i=0;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if(v[i+j*5+k*10]){
System.out.println(i+" "+j+" "+k);
v[i+j*5+k*10]=false;
}
热心网友
时间:2023-10-06 05:19
对不起。我没时间给你写程序了。。
不过给你个思路把。希望对你能有所启发
把所有的前拼接成一个字符串:如
11111111115555555555AAAAAAAAAA
A代表10,然后写一个递归方法做全排列。。很简单,对这个字符串做递归
最后得到的就是你要的东西