解题思路:  /******************先求出所有可能的组合数,然后计数不同邮资的个数**********/

#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;
}
点赞(4)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

寡妇村村长 3年前 回复TA
到底那个是对的!!!
夷则廿一 5年前 回复TA
#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;
}
//有谁看得懂我写是啥吗? 楼主和一楼都好厉害
樱佳 5年前 回复TA
#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;
}