请高手解答一条C++程序!前面有人答过都不正确的!

来源:百度知道 编辑:UC知道 时间:2024/06/26 04:25:01
邮票组合,某人有4张3分的和3张5分的邮票.用这些邮票中的一张或若干张可以得到多少种不同的邮资?
要求用数组解答!

答案虽然是20种 但是楼上方法不对 楼上仅仅是列出了组合 并没有判断重复情况 虽然这个题是没有重复的 但是 这不符合题目考察目的

#include<stdlib.h>
#include<stdio.h>
int temp[100];

int main()
{
int i,j,t,k=0,check=0,counter=0;
for(i=0;i<=4;i++)
for(j=0;j<=3;j++)
{
temp[k]=3*i+5*j;
for(t=0;t<k;t++)
if(temp[t]==temp[k])
{check=1;break;}
k++;
if(check==0)counter=counter+1;
else check=0;
}
printf("there are %d kind\n",counter);
system("pause");
}

#include <stdio.h>

void main()
{
int i,j,a[20],k=0;//因为最多只有20种组合,所以设数组为20
for(i=0;i<=4;i++)//从0开始,因为可有可没有
{
for(j=0;j<=3;j++)//从0开始,因为可有可没有
{
a[k]=3*i+5*j;
k++;
}
}
for(k=1;k<20;k++)//从1开始,因为要减去全为0的那个循环
{
printf("%d,",a[k]);
}
}

结果为:5,10,15,3,8,13,18,6,11,16,21,9,14,19,24,12,17,