模拟篇
模拟题是一类“题目怎么说,我们就怎么做”的题目
1.1 简单模拟
简单模拟不涉及算法,完全只是根据题目表述来进行代码的编写,所以考察的是代码能力
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#include<stdio.h>
int main() { int n=0, step=0; scanf("%d", &n); while( n>=1 && n<= 1000) { if(n == 1) { printf("%d", step); break; } else { if(n%2==0) { n = n/2; step++; } else { n = (3*n+1)/2; step++; } } } return 0; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#include<iostream> const int maxn = 100000; using namespace std;
int main() { int n; int final=0,final_sc=0; cin >> n; int school[maxn]={0}; for(int i=0,j=0,score=0;i<n;i++) { cin >> j >> score; if(j>n) { cout << "[Wrong]超出学校编号!" << endl; } else { school[j-1] += score; if(school[j-1] > final_sc) { final = j; final_sc = school[j-1]; } } } cout << "RESULT:" << final << " " << final_sc << endl; return 0; }
|
1.2 查找元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#include<iostream> using namespace std;
int main() { int n; cin >> n; int* p = new int[n]; for(int i=0;i<n;i++) { cin >> p[i]; } int num; cin >> num; for(int i=0;i<n;i++) { if(p[i] == num) cout << i; } delete[]p; return 0; }
|
1.3 图形输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#include<iostream> using namespace std;
int main() { int n; char c; cin >> n >> c; int raw, col; col = n; raw = n/2 + n%2 ; int j=raw; while(j--) { if(j==raw-1 or j==0) { for(int i=0;i<col;i++) cout << c; cout << endl; } else { cout << c; for(int i=0;i<col-2;i++) cout << " "; cout << c << endl; } } return 0; }
|
1.4 日期处理