时间限制: 1Sec 内存限制: 128MB
题目描述
某人有四张3分的邮票和三张5分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资?
输入
无
输出
可得到多少种
样例输入
无
样例输出
19
Code & Analysis
3分:4张
5分:3张
首先将所有的邮票放入数组,然后将数组中所有的相同元素去除仅剩一个。
此时数组中存放的个数就是邮票组合的组数。
#include<stdio.h>
int main()
{
//3*4 5*3 27
int i,j,k,t,a[28]={0},c1=5,c2=3;
//将邮票的所有组合全部放入数组
for(i=0,k=0;i<=c1;i++){
for(j=0;j<=c2;j++){
a[k]=i*3+j*5;
k++;
}
}
//保证数组中的元素都仅有一个
for(i=0;i<k;i++){
for(j=0;j<k-i-1;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
j--;
}
if(a[j]==a[j+1]){
a[j+1]=a[k-1];
j--;
k--;
}
}
}
printf("%d", k-1);
return 0;
}
转载:https://blog.csdn.net/qq_43328585/article/details/104478061
查看评论