// 题目链接 https://pintia.cn/problem-sets/994805260223102976/exam/problems/994805300404535296
#include<bits/stdc++.h>
using namespace std;
int main(){
int index[10]={0};
char a[1005];
scanf("%s",a);
for(int i=0;i<strlen(a);i++){
index[int(a[i])-48] += 1;
}
for(int i=0;i<10;i++){
if(index[i]!=0){
printf("%d:%d\n",i,index[i]);
}
}
return 0;
}
-------------------------------------------------------------------------
令 P i表示第 i 个素数。现任给两个正整数 M≤N≤10 4 ,请输出 P M 到 P N的所有素数。
输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式:
输出从 P M 到 P N 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
// 题目连接 https://pintia.cn/problem-sets/994805260223102976/exam/problems/994805309963354112
#include<bits/stdc++.h>
using namespace std;
bool isSu(int x) {
if (x == 1) return false;
if (x == 2 || x == 3) return true;
// 注意素数题 都可以小于sqrt(x) 要不然后超时
for (int i = 2; i <= sqrt(x); i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
int main() {
int m, n, sum;
scanf("%d %d", &m, &n);
sum = n - m + 1; // 总共有多少素数
int count = 0; //素数总数
int k = 0; // 控制输出格式
for (int i = 1; i < 1000000; i++) {
if (isSu(i)) {
count++;
if (count >= m && count <= n) {
printf("%d", i);
k++;
if (k % 10 != 0 && k != sum) {
printf(" ");
} else if (k % 10 == 0) {
printf("\n");
}
}
}
//退出循环 必须得加 要不然超时
if(k == sum){
break;
}
}
return 0;
}
-----------------------------------------------------------------------
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。
输入格式:
输入第一行给出3个正整数N(3 < N ≤10 4 ,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。
输出格式:
按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格。
输入样例:
6 5 3
88 90 85 99 60
67 60 80 76 70
90 93 96 99 99
78 65 77 70 72
88 88 88 88 88
55 55 55 55 55
输出样例:
87.667 88.000 96.000
// 题目链接 https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805062432309248
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k,m;
scanf("%d %d %d",&n,&k,&m);
float score[n];
float sum; //去掉首尾后的总和
float avg;
int paixu[k];
for(int i=0;i<n;i++){
for(int j=0;j<k;j++){
scanf("%d",&paixu[j]);
}
sort(paixu,paixu+k);
sum = 0;
for(int l=1;l<k-1;l++){
sum += paixu[l];
}
avg = sum/(k-2);
score[i] = avg;
}
sort(score,score+n);
int s = 0; // 控制输出格式
for(int i=n-m;i<n;i++){
printf("%.3f",score[i]);
s++;
if(s!=m){
printf(" ");
}
}
return 0;
}
----------------------------------------------------------------------------
小 T 想买一个玩具很久了,但价格有些高,他打算等便宜些再买。但天天盯着购物网站很麻烦,请你帮小 T 写一个降价提醒机器人,当玩具的当前价格比他设定的价格便宜时发出提醒。
输入格式:
输入第一行是两个正整数 N 和 M (1≤N≤100,0≤M≤1000),表示有 N 条价格记录,小 T 设置的价格为 M。
接下来 N 行,每行有一个实数 P i(−1000.0<P i <1000.0),表示一条价格记录。
输出格式:
对每一条比设定价格 M 便宜的价格记录 P,在一行中输出 On Sale! P,其中 P 输出到小数点后 1 位。
输入样例:
4 99
98.0
97.0
100.2
98.9
输出样例:
On Sale! 98.0
On Sale! 97.0
On Sale! 98.9
// 题目链接 https://pintia.cn/problem-sets/994805046380707840/exam/problems/1386335159927652355
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
float num;
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%f",&num);
// 整型 能跟 浮点数 比较大小???
if(num < m){
printf("On Sale! %.1f\n",num);
}
}
return 0;
}