【P5723 】【深基4.例13】质数口袋
题目描述
小 A 有一个质数口袋,里面可以装各个质数。他从 22 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。口袋的负载量就是口袋里的所有数字之和。但是口袋的承重量有限,不能装得下总和超过 LL 的质数。给出 LL,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。
输入格式
一行一个正整数 LL。
输出格式
将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。
输入输出样例
输入
100
输出
2
3
5
7
11
13
17
19
23
9
说明/提示
数据保证,1 \le L \le {10}^51≤L≤105。
#include<bits/stdc++.h> using namespace std; int main(){ int n,i,j,sum=0,count=0; cin >> n; for(i=2;i<n;i++){ for(j=2;j<i;j++){ if(i%j==0){ break; } } if(j>=i&&sum+i<=n){ cout << i << endl; sum=sum+i; count++; } } cout << count << endl; }
【P5726】 【深基4.习9】打分
题目描述
现在有 n(n \le 1000)n(n≤1000) 位评委给选手打分,分值从 00 到 1010。需要去掉一个最高分,去掉一个最低分(如果有多个最高或者最低分,也只需要去掉一个),剩下的评分的平均数就是这位选手的得分。现在输入评委人数和他们的打分,请输出选手的最后得分,精确到 22 位小数。
输入格式
第一行输入一个正整数 nn,表示有 nn 个评委。
第二行输入 nn 个正整数,第 ii 个正整数表示第 ii 个评委打出的分值。
输出格式
输出一行一个两位小数,表示选手的最后得分。
输入输出样例
输入
5
9 5 6 8 9
输出
7.67
说明/提示
数据保证,3 \leq n \leq 10003≤n≤1000,每个评委打出的分值为为 00 到 1010(含 00 与 1010)之间的整数。
#include<bits/stdc++.h> using namespace std; int main(){ int n,i,m; double sum=0,average=0; cin >> n; int a[n]; if(n>=3&&n<=1000){ for(i=0;i<n;i++){ cin >> a[i]; } sort(a,a+n); for(i=1;i<n-1;i++){ sum=sum+a[i]; } m=n-2; average=sum/m; printf("%.2lf\n",average); } }
【P2669】 [NOIP2015 普及组] 金币
题目背景
NOIP2015 普及组 T1
题目描述
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 nn 天每天收到 nn 枚金币后,骑士会在之后的连续 n+1n+1 天里,每天收到 n+1n+1 枚金币。
请计算在前 kk 天里,骑士一共获得了多少金币。
输入格式
一个正整数 kk,表示发放金币的天数。
输出格式
一个正整数,即骑士收到的金币数。
输入输出样例
输入 #1复制
6
输出 #1复制
14
输入
1000
输出
29820
说明/提示
【样例 1 说明】
骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到 1+2+2+3+3+3=141+2+2+3+3+3=14 枚金币。
对于 100\%100% 的数据,1\le k\le 10^41≤k≤104。
#include<iostream> using namespace std; int main() { int n,k,c,i,sum=0; cin >> k; c=n=1; for(i=1;i<=k;i++) { sum=sum+c; n--; if(n==0) { c++; n=c; } } cout << sum; return 0; }