12.9每日一题(备战蓝桥杯循环结构)

12.9每日一题(备战蓝桥杯循环结构)

  • 题目 2165: 求平均年龄
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2165: 求平均年龄
  • 题目 2166: 均值
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2166: 均值
  • 题目 2167: 求整数的和与均值
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2167: 求整数的和与均值
  • 题目 2040: 【入门】找数组的最大数
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2040: 【入门】找数组的最大数
  • 题目 2168: 最大跨度值
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2168: 最大跨度值
  • 题目 2169: 奥运奖牌计数
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2169: 奥运奖牌计数
  • 题目 2170: 奇数求和
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2170: 奇数求和
  • 题目 2171: 满足条件的数累加
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2171: 满足条件的数累加
  • 题目 2172: 整数的个数
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2172: 整数的个数
  • 题目 2173: 与指定数字相同的数的个数
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2173: 与指定数字相同的数的个数
  • 题目 2174: 乘方计算
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2174: 乘方计算
  • 题目 1446: 【入门】人口增长问题
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 1446: 【入门】人口增长问题
  • 题目 2175: 斐波那契数
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2175: 斐波那契数
  • 题目 2180: 正常血压
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2180: 正常血压
  • 题目 1521: 【入门】计算分数加减表达式的值
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 1521: 【入门】计算分数加减表达式的值
  • 题目 2196: 不定方程求解
        • 题目描述
        • 输入
        • 输出
        • 样例输入
        • 样例输出
        • 来源/分类
  • 题解 2196: 不定方程求解

题目 2165: 求平均年龄

题目描述

班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。

输入

第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。

输出

输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。

样例输入
2
18
17
样例输出
17.50
来源/分类

[信息学奥赛一本通] [for语句]

题解 2165: 求平均年龄

#include
#include
using namespace std;
int n , x , sum;
int main()
{
	scanf("%d",&n);
	
	for(int i = 0 ; i < n ; i++){
		scanf("%d",&x);
		sum += x;
	}
	
	printf("%.2lf",double(sum)  / double(n)); 
	return 0;
}

题目 2166: 均值

题目描述

给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。

输入

输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。

输出

输出一行,包含一个浮点数,表示均值,精确到小数点后4位。

样例输入
2
1.0 3.0
样例输出
2.0000
来源/分类

[信息学奥赛一本通] [for语句]

题解 2166: 均值

#include
#include
using namespace std;
int n ;
double x , sum;
int main()
{
	scanf("%d",&n);
	
	for(int i = 0 ; i < n ; i++){
		scanf("%lf",&x);
		sum += x;
	}
	
	printf("%.4lf",sum  / n); 
	return 0;
}

题目 2167: 求整数的和与均值

题目描述

读入n(1≤n≤10000)个整数,求它们的和与均值。

输入

输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。

输出

输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。

样例输入
4
344
222
343
222
样例输出
 1131 282.75000
来源/分类

[信息学奥赛一本通][for语句]

题解 2167: 求整数的和与均值

#include
#include
using namespace std;
int n , x , sum;
int main()
{
	scanf("%d",&n);
	
	for(int i = 0 ; i < n ; i++){
		scanf("%d",&x);
		sum += x;
	}
	
	printf("%d %.5lf",sum,double(sum)  / double(n)); 
	return 0;
}

题目 2040: 【入门】找数组的最大数

题目描述

从键盘读入n个整数,请问这n个整数的最大数是多少?

输入

第1行读入一个整数n(n<=100);

第2行读入n个整数;

输出

输出数组中的最大数;

样例输入
5
2 1 5 3 4
样例输出
5
来源/分类

[数组问题]

题解 2040: 【入门】找数组的最大数

#include
#include
#include
using namespace std;
int n , sum;
int a[110];
int main()
{
	scanf("%d",&n);
	
	for(int i = 0 ; i < n ; i++){
		scanf("%d",&a[i]);
	}
	
	sort(a,a+n); 
	
	printf("%d",a[n-1]); 
	return 0;
}

题目 2168: 最大跨度值

题目描述

给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。

输入

一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。

输出

输出一行,表示序列的最大跨度值。

样例输入
6
3 0 8 7 5 9
样例输出
9
来源/分类

[信息学奥赛一本通] [for语句]

题解 2168: 最大跨度值

#include
#include
#include
using namespace std;
int n , sum;
int a[1010];
int main()
{
	scanf("%d",&n);
	
	for(int i = 0 ; i < n ; i++){
		scanf("%d",&a[i]);
	}
	
	sort(a,a+n); 

	printf("%d",a[n-1] - a[0]); 
	return 0;
}

题目 2169: 奥运奖牌计数

题目描述

2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。输入第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目。输出4个整数,为A国所获得的金、银、铜牌总数及总奖牌数。

输入

输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。

输出

输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。

样例输入
3
1 0 3
3 1 0
0 3 0
样例输出
4 4 3 11
来源/分类

[信息学奥赛一本通] [for语句]

题解 2169: 奥运奖牌计数

#include
#include
using namespace std;

int n , a , b , c , s1 , s2 , s3;
int main()
{
	scanf("%d",&n);
	
	for(int i = 0 ; i < n ; i++){
		scanf("%d %d %d",&a,&b,&c);
		s1 += a;
		s2 += b;
		s3 += c;
	}
	
	printf("%d %d %d %d",s1,s2,s3,s1+s2+s3);
	return 0;
}

题目 2170: 奇数求和

题目描述

计算非负整数m到n(包括m和n)之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3,n=12, 其和则为:3+5+7+9+11=35。

输入

两个数 m 和 n,两个数以一个空格分开,其中 0≤m≤n≤300 。

输出

输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和

样例输入
7 15
样例输出
55
来源/分类

[信息学奥赛一本通] [for语句]

题解 2170: 奇数求和

#include
#include
using namespace std;
int n , m , sum;
int main()
{
	scanf("%d %d",&n,&m);
	
	for(int i = n ; i <= m ; i++){
		if(i % 2 == 1){
			sum += i;
		}
	}
	
	printf("%d",sum); 
	return 0;
}

题目 2171: 满足条件的数累加

题目描述

将正整数m和n之间(包括m和n)能被17整除的数累加,其中,0 < m < n < 1000。

输入

一行,包含两个整数m和n,其间,以一个空格间隔。

输出

输出一行,包行一个整数,表示累加的结果。

样例输入
50 85
样例输出
204
来源/分类

[信息学奥赛一本通][for语句]

题解 2171: 满足条件的数累加

#include
#include
using namespace std;
int n , m , sum;
int main()
{
	scanf("%d %d",&n,&m);
	
	for(int i = n ; i <= m ; i++){
		if(i % 17 == 0){
			sum += i;
		}
	}
	
	printf("%d",sum); 
	return 0;
}

题目 2172: 整数的个数

题目描述

给定k(1

输入

输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。

输出

输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。

样例输入
5
1 5 8 10 5
样例输出
1
2
1
来源/分类

[信息学奥赛一本通] [for语句]

题解 2172: 整数的个数

#include
#include
using namespace std;

int n , s1 , s2 , s3;
int a[110];
int main()
{
	scanf("%d",&n);
	
	for(int i = 0 ; i < n ; i++){
		scanf("%d",&a[i]);
		if(a[i] == 1){
			s1++;
		}
		if(a[i] == 5){
			s2++;
		}
		if(a[i] == 10){
			s3++;
		}
	}
	
	printf("%d\n%d\n%d\n",s1,s2,s3);
	return 0;
}

题目 2173: 与指定数字相同的数的个数

题目描述

输出一个整数序列中与指定数字相同的数的个数。输入包含2行:第1行为N和m,表示整数序列的长度(N<=100)和指定的数字;第2行为N个整数,整数之间以一个空格分开。输出为N个数中与m相同的数的个数。

输入

第1行为N和m,表示整数序列的长度(N<=100)和指定的数字, 中间用一个空格分开;
第2行为N个整数,整数之间以一个空格分开。

输出

输出为N个数中与m相同的数的个数。

样例输入
3 2
2 3 2
样例输出
2
来源/分类

[信息学奥赛一本通] [for语句]

题解 2173: 与指定数字相同的数的个数

#include
#include
using namespace std;

int n , m , sum;
int a[110];
int main()
{
	scanf("%d %d",&n,&m);
	
	for(int i = 0 ; i < n ; i++){
		scanf("%d",&a[i]);
		if(a[i] == m){
			sum++;
		}
	}
	
	printf("%d",sum);
	return 0;
}

题目 2174: 乘方计算

题目描述

给出一个整数a和一个正整数n(−1000000 ≤ a ≤ 1000000,1 ≤ n ≤ 10000),求乘方an,即乘方结果。最终结果的绝对值不超过1000000。

输入

一行,包含两个整数a和n。−1000000≤a≤1000000,1≤n≤10000。

输出

一个整数,即乘方结果。题目保证最终结果的绝对值不超过1000000。

样例输入
2 3
样例输出
8
来源/分类

[信息学奥赛一本通] [for语句]

题解 2174: 乘方计算

#include
#include
#include
using namespace std;
int n , m;
int main()
{
	scanf("%d %d",&n,&m);
	
	printf("%d",int(pow(n,m))); 
	return 0;
}

题目 1446: 【入门】人口增长问题

题目描述

我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?

输入

一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。

输出

输出最后的人口数,以亿为单位,保留到小数点后四位。1 <= x <= 100, 1 <= n <= 100。

样例输入
13 10
样例输出
13.1306
来源/分类

[简单循环]

题解 1446: 【入门】人口增长问题

#include
#include
#include
using namespace std;
int n , m;
double s;
int main()
{
	scanf("%d %d",&n,&m);
	s = double(n);
	for(int i = 1 ; i <= m ; i++){
		s += s * 0.001; 
	}
	printf("%.4lf",s);
	return 0;
}

题目 2175: 斐波那契数

题目描述

斐波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。

输入

输入一行,包含一个正整数k。(1 ≤ k ≤ 46)

输出

输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小。

样例输入
19
样例输出
4181
来源/分类

[信息学奥赛一本通] [for语句]

题解 2175: 斐波那契数

#include
#include
using namespace std;

int n;
int a[100];
int main()
{
	scanf("%d",&n);
	a[1] = 1;
	
	for(int i = 2 ; i <= 46 ; i++){
		a[i] = a[i-1] + a[i-2];
	}
	
	printf("%d",a[n]);
	return 0;
}

题目 2180: 正常血压

题目描述

监护室每小时测量一次病人的血压,若收缩压在90-140之间并且舒张压在60-90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。

输入

第一行为一个正整数n(n < 100),其后有n行,每行2个正整数,分别为一次测量的收缩压和舒张压。

输出

输出仅一行,血压连续正常的最长小时数。

样例输入
4
100 80
90 50
120 60
140 90
样例输出
2
来源/分类

[信息学奥赛一本通] [for语句]

题解 2180: 正常血压

#include
#include
#include
using namespace std;
int n , x , y , sum, res;
int main()
{
	scanf("%d",&n);
	for(int i = 0 ; i < n ; i++){
		scanf("%d %d",&x,&y);
		if((x >= 90 && x <= 140) && (y >= 60 && y <= 90)){
			sum++;
			res = max(sum,res);
		}else{
			sum = 0;
		}
	}
	printf("%d",res);
	return 0;
}

题目 1521: 【入门】计算分数加减表达式的值

题目描述

编写程序,输入n的值,求 1/1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 - 1/8 + … 前n项的和。

输入

输入一个正整数n。1 <= n <= 1000。

输出

输出一个实数,为表达式的值,保留到小数点后四位。

样例输入
2
样例输出
0.5000
来源/分类

[简单循环]

题解 1521: 【入门】计算分数加减表达式的值

#include
#include
using namespace std;
int n;
double res = 1.0;
int main()
{
	scanf("%d",&n);
	for(int i = 2 ; i <= n ; i++){
		if(i % 2 == 0){
			res = res - (1.0 / i);
		}else{
			res = res + (1.0 / i);
		}
	}
	printf("%.4lf",res);
	return 0;
}

题目 2196: 不定方程求解

题目描述

给定正整数a,b,c。求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数。

输入

一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开。每个数均不大于1000。

输出

一个整数,即不定方程的非负整数解组数。

样例输入
2 3 18
样例输出
4
来源/分类

[信息学奥赛一本通] [循环嵌套]

题解 2196: 不定方程求解

#include
#include
using namespace std;
int a, b, c;
int countSolutions(int a, int b, int c) {
    int count = 0;
    for (int x = 0; x <= c/a; x++) {
        int remainder = c - a * x;
        if (remainder % b == 0)
            count++;
    }
    return count;
}

int main() {

    scanf("%d %d %d", &a, &b, &c);

    int result = countSolutions(a, b, c);
    printf("%d\n", result);

    return 0;
}

你可能感兴趣的:(每日一题算法,蓝桥杯,职场和发展,c++,算法)