Advertisement

蓝桥杯训练——2.28

阅读量:

基础练习 特殊回文数

问题描述

这个数特别有意思的是它左右对称。
对于给定的正整数n,请编程找出所有符合左右对称且各位数字之和为n的五位及六位十进制数。

输入格式

输入一行,包含一个正整数n。

输出格式

按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入

52

样例输出
899998
989989
998899

数据规模和约定

1<=n<=54。

思路:

由于数值较小,在计算前两位的可能性时可采取快速计算的方法;随后依次计算五位数的排列情况并接着计算六位数的排列情况;最终结果即按从小到大的顺序排列完成

源代码:

复制代码
    #include <stdio.h>
    int main()
    {
    	int n;
    	int i, j, k, l, r;
    	scanf("%d", &n);
    	for(i = 1; i <= 9; i++)
    	{
    		for(j = 0; j <= 9; j++)
    		{
    			l = n - (i * 2 + j * 2);
    			if(l >= 0 && l<=9)
    			{
    				printf("%d%d%d%d%d\n", i, j, l, j, i);
    			}
    		}
    	}
    	for(i = 1; i <= 9; i++)
    	{
    		for(j = 0; j <= 9; j++)
    		{
    			l = n - (i * 2 + j * 2);
    			r = l % 2;
    			if(r == 0 && l / 2 >= 0 && l / 2<=9)
    			{
    				printf("%d%d%d%d%d%d\n",i , j, l / 2, l / 2, j, i);
    			}
    		}
    	}
    	return 0;
    }

视频学习:

视频链接:https://www.bilibili.com/video/BV1ty4y117go/?p=1

练习:

题目描述

共有 n(n ≤ 1,000)位评委对选手进行打分(其中 n 是小于等于 1,000 的整数),每位选手的评分范围是从 5 分到 15 分。根据评分规则:每个参赛者的最终评分为其所有有效评分的算术平均值(四舍五入保留两位小数)。具体计算方法是:首先将所有评委给出的有效评分去极端值(即去除一个最高有效评分和一个最低有效评分),然后将剩余的有效评分相加后除以该数量即为该选手的最终得分。现要求编写程序实现这一功能:输入评委人数及其对应的分数列表,请计算并输出该选手最终得分

输入格式

输出格式

输入输出样例

输入 #1

5
9 5 6 8 9

输出 #1

7.67

源代码:

复制代码
    #include<bits/stdc++.h>
    using namespace std;
    int n,a[10001];
    double ans;
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++) cin>>a[i];
    	sort(a+1,a+n+1);
    	for(int i=2;i<=n-1;i++) ans+=a[i];
    	printf("%.2lf",ans/(n-2));
    	return 0;
    }

全部评论 (0)

还没有任何评论哟~