某人有5张3分和4张5分的邮票,请编写一个程序,计算由这些邮票中的1张或若干张可以得到多少种不同的邮资.
我的程序是这样的,可是没有考虑会组成相同的邮资,public class Youzi
{
public static void main(String[]args)
{
int i,j,k=0,s,count=0;
int a[]=new int[30];
for(i=0;i<=5;i++) //i:取三分邮票的张数
for(j=0;j<=4;j++) //j:取5分邮票的张数
{
s=i*3+j*5; //计算组成的邮票面值
此行有错误 for(k=0;a[k];k++) //查找是否有相同的邮资 if(s==a[k])break;
else //没有找到相同的邮资则满足要求存入数组
{
a[k]=s;
count++;
}
}
System.out.println("一共有"+count+" 种不同的邮资"); //输出结果
System.out.println(a[k]);
}
}
运行提示有错误,找到: int 需要: boolean for(k=0;a[k];k++) 请高手指点
我的程序是这样的,可是没有考虑会组成相同的邮资,public class Youzi
{
public static void main(String[]args)
{
int i,j,k=0,s,count=0;
int a[]=new int[30];
for(i=0;i<=5;i++) //i:取三分邮票的张数
for(j=0;j<=4;j++) //j:取5分邮票的张数
{
s=i*3+j*5; //计算组成的邮票面值
此行有错误 for(k=0;a[k];k++) //查找是否有相同的邮资 if(s==a[k])break;
else //没有找到相同的邮资则满足要求存入数组
{
a[k]=s;
count++;
}
}
System.out.println("一共有"+count+" 种不同的邮资"); //输出结果
System.out.println(a[k]);
}
}
运行提示有错误,找到: int 需要: boolean for(k=0;a[k];k++) 请高手指点
解决方案 »
- Socket传输问题
- myeclipse8.5编写jsp时光标动不动就消失!?
- java可以做桌面程序吗
- 100分求教!向上转型时如何能够引用派生类的Field?
- 抵制日货,从我做起
- 请问大家 在j2se中如何实现一个链表? 并且如何遍历他?(给一百)
- 让我无言以对:“Could not find C:/struts.jar to copy to WebApp website; file is defined as element of library struts”
- 请问斑竹
- 现作一图形编辑器 需控制文本的移动 请问高手用什么办法来控制drawstring生成的...
- 请教,如果选出数据库中一条记录(比如一万条中的第3000条)
- Menu类的add()参数问题
- bat中执行java
for(k=0; a[k]>0; k++)
这样写
邮资存数组这个事情不应该在循环里面做,要在外面做。这样改 s = i * 3 + j * 5; // 计算组成的邮票面值
for (k = 0; a[k] > 0; k++)
// 查找是否有相同的邮资
if (s == a[k])
break;
if (k==count && s>0) {
a[k] = s;
count++;
}
public class Stamp { public static void main(String[] args) {
System.out.println(test(5, 3, 4, 5));
}
public static int test(int count_i, int i, int count_j, int j){
int[] nums1 = new int[count_i];
int[] nums2 = new int[count_j];
Set<Integer> set = new HashSet<Integer>();
for (int k = 0; k < count_i; k++) {
nums1[k] = i * (k + 1);
set.add(nums1[k]);
}
for (int k = 0; k < count_j; k++) {
nums2[k] = j * (k + 1);
set.add(nums2[k]);
}
for (int k = 0; k < nums1.length; k++) {
for (int index = 0; index < nums2.length; index++) {
set.add(nums1[k] + nums2[index]);
}
}
return set.size();
}
}