原题链接:C语言训练-邮票组合问题*
解题思路: /******************先求出所有可能的组合数,然后计数不同邮资的个数**********/
#include<stdio.h>
#define N 20 //5*4
int main()
{
int i,j,k=0,sum[N-1],count=1,temp;
for(i=0;i<=4;i++)
for(j=0;j<=3;j++)
if(i+j>0)
{
sum[k++]=i*3+j*5;
}
for(i=0;i<N-2;i++) /*将得到的邮费数组从小到大顺序排列*/
for(j=i+1;j<N-1;j++)
if(sum[i]>sum[j])
{
temp=sum[i];
sum[i]=sum[j];
sum[j]=temp;
}
for(i=0;i<N-2;i++) /*计算邮费数的不同个数*/
{
if(sum[i]==sum[i+1]) continue;
else count++;
}
printf("%d\n",count);
return 0;
} 0.0分
4 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> int main() { int num[7]={3,3,3,3,5,5,5}; int i,j,sum,temp,record; int k,diffrent=0; for(k=1;k<=7;k++) { record=0; temp=0; for(i=0;i<=7-k;i++) { sum=0; for(j=i;j<=i+(k-1);j++) { sum += num[j]; } if(temp!=sum) { record++; temp=sum; } } diffrent += record; } printf("%d",diffrent); return 0; } //有谁看得懂我写是啥吗? 楼主和一楼都好厉害#include<stdio.h> int main() { int z=0; for(int k=0;k<=3;k++) for(int i=0;i<=4;i++) //因为这里多了一种(k=0&&i=0)的情况,所以下面要减一; { z++; } printf("%d\n",z-1); return 0; }