输入在第1行给出不超过105的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以空格分隔。最后1行给出要查询的分
数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。
在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。
10 60 75 90 55 75 99 82 90 75 50 3 75 90 88
3 2 0
a=list(map(int,input().split()))
n,res=a[0],[]
for i in a[n+2:]:
res.append(str(a[1:n+1].count(i)))
print(" ".join(res))
a,b,c,res=input(),list(map(int,input().split())),list(map(int,input().split())),[]
for i in c[1:]:
res.append(str(b.count(i)))
print(" ".join(res))
//本代码思路:使用map装入数据,key装成绩,value装人数,然后按查询输出结果 import java.util.Scanner; import java.util.Map; import java.util.TreeMap; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt(); Map<Integer,Integer> map = new TreeMap<>(); for(int i=0;i<n;i++){ int k = sc.nextInt(); if(map.containsKey(k)){ map.put(k,map.get(k)+1); }else{ map.put(k,1); } } int num = sc.nextInt(); for(int i=0;i<num;i++){ int key = sc.nextInt(); if(map.containsKey(key)){ System.out.print(map.get(key)); }else{ System.out.print(0); } if(i != num-1){ System.out.print(" "); } } } } }
#include<iostream>using namespace std;intmain(){longN,k;intStuGrade[10000],FinGrade[10000],FinResult[10000];cin>>N;inti,j;for(i=0;i<N;i++)cin>>StuGrade[i];cin>>k;for(i=0;i<k;i++)cin>>FinGrade[i];//find the same grade,statistic the numberfor(i=0;i<k;i++){for(j=0;j<N;j++){if(FinGrade[i]==StuGrade[j])FinResult[i]++;}cout<<FinResult[i];if(i<k-1)cout<<" ";}return0;}
#include <iostream> using namespace std; int CountScore(int a[],int n,int score) { int count=0; for(int i=0;i<n;i++) { if(a[i]==score) { count++; } } return count; } int main() { int n,k,score; int a[10001]={0}; cin>>n; for(int i=0;i<n;i++) { cin>>score; a[i]=score; } cin>>k; for(int i=0;i<k;i++) { cin>>score; if(i!=k-1)cout<<CountScore(a,n,score)<<" "; else cout<<CountScore(a,n,score); } return 0; }
import java.util.Scanner;
/**
* 跟奥巴马一起编程
* 题目描述
* 美国***奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的***。
* 2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。
* 现在你也跟他一起画吧!
* 输入描述:
* 输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格。
* 输出描述:
* 输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的
* 行数实际上是列数的50%(四舍五入取整)。
* 输入例子:
* 10 a
* 输出例子:
* aaaaaaaaaa
* a a
* a a
* a a
* aaaaaaaaaa
*
* @author shijiacheng
* @date 2018/1/31
*/
public class B1026CodingWithObama {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String c = sc.next();
int row = N / 2;
if (N % 2 != 0) {
row = N / 2 + 1;
}
if (row == 2) {
for (int i = 0; i < N; i++) {
System.out.print(c);
}
System.out.println();
for (int i = 0; i < N; i++) {
System.out.print(c);
}
} else {
for (int i = 0; i < N; i++) {
System.out.print(c);
}
System.out.println();
for (int i = 0; i < row - 2; i++) {
System.out.print(c);
for (int j = 0; j < N - 2; j++) {
System.out.print(" ");
}
System.out.print(c);
System.out.println();
}
for (int i = 0; i < N; i++) {
System.out.print(c);
}
}
}
}
#include<iostream> using namespace std; int main(){ int N, n, temp, hash[101] = {0}; cin>>N; while(N--){ cin>>temp; hash[temp]++; } cin>>n; while(n--){ cin>>temp; cout<<hash[temp]<<((n >= 1)?" ":""); } return 0; }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] sorce = new int[101]; for (int i=0;i<n;i++){ sorce[in.nextInt()]++; } int m = in.nextInt(); for (int i=0;i<m;i++){ if (i == m - 1) { System.out.print(sorce[in.nextInt()]); }else { System.out.print(sorce[in.nextInt()]+" "); } } } }
#include <iostream> using namespace std; int main(int argc, char** argv) { int arr[101] = {0}, re[101] = {0}; int nums, score; cin >> nums; for(int i = 0; i < nums; i++){ cin >> score; arr[score]++; } cin >> nums; for(int i = 0; i < nums; i++){ cin >> score; arr[score] == 0 ? re[i] = 0 : re[i] = arr[score]; } for(int i = 0; i < nums; i++){ cout << re[i]; if(i!=nums-1) cout << " "; } return 0; }
#include<iostream> using namespace std; int main(){ int n; cin>>n; int score[n]; for(int i=0;i<n;i++){ cin>>score[i]; } int count; cin>>count; int Find_Score[count]; for(int i=0;i<n;i++){ cin>>Find_Score[i]; } for(int i=0;i<count;i++){ int N=0; for(int j=0;j<n;j++){ if(score[j]==Find_Score[i]){ N++; } } cout<<N; if(i<count-1) cout<<" "; } }
一点弯都没有,但在官网上会运算超时,看来不能用双重for循环,真是难为我这初学者。 #include int main () { int N, i; scanf("%d",&N); int a[N]; for (i = 0;i < N;i++){ scanf("%d",&a[i]); } int K, j; scanf("%d",&K); int s[K], n[K]; for (j = 0;j < K;j++){ scanf("%d",&s[i]); n[j] = 0; for (i = 0;i < N;i++){ if (a[i] == s[j]){ n[j]++; } } printf("%d ",n[j]); } printf("%d",n[K - 1]); return 0; }
#include<stdio.h> int main (){//the shorter,the better. int n,i,t; for(;~scanf("%d",&n);){ int s[100];for (i = 0; i < n&&~scanf("%d",&t);++s[t],i++); for (scanf("%d",&n),i = 0; i < n&&~scanf("%d",&t);++i,printf(i==n?"%d\n":"%d ",s[t])); } }
import java.util.*; public class Main{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int N = sc.nextInt(); int num[] = new int[101];//用以存储每个分数段的人数。 for(int i = 0; i < N; i++){ num[sc.nextInt()]++; } int K = sc.nextInt(); for(int i = 0; i < K; i++){ System.out.print(num[sc.nextInt()]); if(i != K-1) System.out.print(" "); } } sc.close(); } }
importjava.util.HashMap;importjava.util.Map;importjava.util.Scanner;/** 题目有坑,输入格式表达有问题,应该是一次性输入学生数目,成绩,查询数目,查询分数,这些都是在一行 */publicclassMain {publicstaticvoidmain(String[] args) {// TODO Auto-generated method stubMap<Integer,Integer> stu = newHashMap<>();Scanner sc = newScanner(System.in);intnum = sc.nextInt();for(inti=0;i<num;i++) {inttmp = sc.nextInt();if(stu.containsKey(tmp)){stu.put(tmp, stu.get(tmp)+1);}else{stu.put(tmp, 1);}}intsearchNum = sc.nextInt();for(inti = 1;i<searchNum;i++){inttmp = sc.nextInt();if(stu.containsKey(tmp)){System.out.print(stu.get(tmp)+" ");}else{System.out.print(0+" ");}}inttmp = sc.nextInt();if(stu.containsKey(tmp)){System.out.println(stu.get(tmp));}else{System.out.print(0);}}}
#include int main(){ int mark[101] = {0}, n, score, m[101], i = 0, j; scanf("%d", &n); while (n--){ scanf("%d", &score); mark[score]++; } scanf("%d", &n); j = n; while (n--){ scanf("%d", &score); m[i] = score; i++; } for (i = 0; i < j; i++) i != j - 1 ? printf("%d ", mark[m[i]]) : printf("%d", mark[m[i]]); return 0; }
//果断妙计,数组都快被玩坏了~哈哈哈 import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt(); int[] score=new int[101]; for (int i = 0; i < n; i++) { int tn=in.nextInt(); score[tn]++; } int m=in.nextInt(); for (int i = 0; i < m; i++) { int tm=in.nextInt(); if(i!=m-1){ System.out.print(score[tm]+" "); } else{ System.out.println(score[tm]); } } } } }