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<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
#include<algorithm>
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<iostream>
#include<cstdio>
#include<algorithm>
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<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
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<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。
输入
输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
输出
输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。
样例输入
5
1 5 8 10 5
样例输出
1
2
1
来源/分类
[信息学奥赛一本通] [for语句]
题解 2172: 整数的个数
#include<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
#include<cmath>
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<iostream>
#include<cstdio>
#include<cmath>
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<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
#include<cmath>
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<iostream>
#include<cstdio>
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<iostream>
#include<cstdio>
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;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!