一.题目描述:
某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少种不同的邮资?
输入:
题目没有任何输入
输出:
按题目的要求输出可以得到的不同邮资的数目
样例输入:
样例输出:
二.题目分析
本题中需要注意数据类型的选择,若选用double型,会由于精度问题,进行==和!=比较过程中出错,因此需要化成int型,所以就元转换角喽
三.代码
#include <stdio.h>
#include <stdlib.h>
/* 出错
int main()
{
int i=0,j,k,a,b,c; //a-0.8 b-1 c-1.8
double sum[100],s;
for(a=0;a<=5;a++)
{
for(b=0;b<=4;b++)
{
for(c=0;c<=6;c++)
{
s=a*0.8+b*1+c*1.8;
if(i!=0)
{
for(j=0;j<i;j++)
if(sum[j]==s)
break;
if(j==i)
sum[i++]=s;
}
else
sum[i++]=s;
}
}
}
printf("%d\n",i);
return 0;
}
*/
int main()
{
int i=0,j,k,a,b,c; //a-0.8 b-1 c-1.8
int sum[100],s;
for(a=0;a<=5;a++)
{
for(b=0;b<=4;b++)
{
for(c=0;c<=6;c++)
{
s=a*8+b*10+c*18;
if(i!=0)
{
for(j=0;j<i;j++)
if(sum[j]==s)
break;
if(j==i)
sum[i++]=s;
}
else
sum[i++]=s;
}
}
}
printf("%d\n",i-1);
return 0;
}