正文

2005年7月4日第26期电脑报编程点将台2005-07-07 12:00:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/2625.html

分享到:

题目: 某人有四张3分的邮票和三张5分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资? 这一道题就是我的C语言程序百例中的第72道,我稍微看了一下,好像我写的程序好像更简单。 /*算法分析: 从四张3分和三张5分中任取一张或若干张得到的最大邮资为27,即所得邮资3——27之间,故用数组XX[28]标志邮资是否可以得到,当某一位置的邮资可以取得时则数组在这个位置的值为1,否则为0;利用二重循环可以取所有可能的邮资值。 采用C++编程,在VC++6.0中通过运行,结果是19 */ #include<iostream.h> void main() {     int i,j,XX[28],count=0;     for(i=0;i<28;i++)         XX[i]=0;          for(i=0;i<=4;i++)         for(j=0;j<=3;j++)             if(XX[3*i+5*j]==0)XX[3*i+5*j]=1;          for(i=1;i<28;i++)//i从1开始取值是因为至少要从这些邮票中取一张         if(XX[i]==1)count++;     cout<<count<<endl; } 若要输出所有可能的邮资,则扩展为: #include<iostream.h> void main() {     int i,j,XX[28],count=0;     for(i=0;i<28;i++)         XX[i]=0;          for(i=0;i<=4;i++)         for(j=0;j<=3;j++)             if(XX[3*i+5*j]==0)XX[3*i+5*j]=3*i+5*j;      for(i=1;i<28;i++)//i从1开始取值是因为至少要从这些邮票中取一张         if(XX[i]!=0)         {             count++;             cout<<i<<" , ";         }     cout<<"\nThe number is: "<<count<<endl; }

阅读(4949) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册