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;
}