八个月了,由于个人参加CAAU,很久没更新了。
- 这次更新1235,1237无答案,欢迎各位补充。
- 长时间没更新,排版会有小问题,勿喷。
- 最后提前祝大家五一假期快乐🙂😊!
1221
#include <bits/stdc++.h> using namespace std; int a[110],n,i; double ans; int main(){ cin>>n; for(i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); for(i=n;i>n-5;i--){ ans=ans+a[i]; } printf("%0.1f",ans/5); return 0; }
1222
A为存放盘子的塔,C为目标塔,B为辅助塔
算法分为三步
一、将A上n-1个盘子,借助于C ,全部放到B塔上
二、将A上剩下的一个盘子放到C塔上
三、将B塔上n-1个盘子,借助于A,全部放到C塔上
#include <bits/stdc++.h> using namespace std; /* 移动的过程: 1、先将n-1个金片(n个金片除了最下面一个以外的金片) 从A位置,借助C位置,移动到B位置,需要fun(n-1)步 2、将A位置的最下方的一个金片,直接移动到C位置,需要1步 3、将B位置的n-1个金片,从B位置借助A位置移动到C位置 需要fun(n-1)步 因此得到结论如下:fun(n) = fun(n-1) * 2 + 1 */ /* 函数的作用:将n个金片从p1位置,借助p2位置,移动到p3位置 p1:源位置(金片所在的源位置) p2:辅助位置(移动的过程中要借助的位置) p3:目标位置(移动到的位置) */ void move(int n,char p1,char p2,char p3){ //递归的出口:只要有金片就要递归,没有金片递归停止 if(n > 0){ //第1步:将n-1个金片,从p1位置,借助p3位置,移动到p2位置 move(n-1,p1,p3,p2); //第2步:将p1位置的第n个金片直接移动到p3位置 cout<<p1<<" To "<<p3<<endl; //第3步:将p2位置的n-1个金片,借助于p1位置,移动到p3位置 move(n-1,p2,p1,p3); } } int main(){ int n; cin>>n; //递归调用,打印移动的步骤 move(n,'A','B','C'); return 0; }
1223
#include <bits/stdc++.h> using namespace std; int fun(int n) { if(n == 1) return 1; else return fun(n-1)*2+1; } int main() { int n; cin>>n; cout<<fun(n); return 0; }
1224
#include<iostream> using namespace std; int a[25][25]; int main() { int n, m, x, y; cin >> n >> m >> x >> y; for(int i = 0; i <= n; i++) { for(int j = 0; j <= m; j++) { a[i][j] = -1; } } int dx[10] = {0, -1, -1, -2, -2, 1, 1, 2, 2}; int dy[10] = {0, -2, 2, -1, 1, -2, 2, -1, 1}; for(int i = 0; i <= 9; i++) { int ix = dx[i] + x; int iy = dy[i] + y; if(ix >=0 && ix <=n && iy >= 0 && iy <= m) { a[ix][iy] = 0; } } a[0][0] = 1; for(int i = 0; i <= n; i++) { for(int j = 0; j <= m; j++) { if(i == 0 && a[i][j] == -1) a[i][j] = a[i][j-1]; else if(j == 0 && a[i][j] == -1) a[i][j] = a[i-1][j]; else if(a[i][j] == -1) a[i][j] = a[i][j-1] + a[i-1][j]; } } cout << a[n][m]; return 0; }
1225
#include <stdio.h> int main() { int n,i,j,m=0,z,y; scanf("%d",&n); z=2; y=2*n-1; for (i=0;i<n;i++) { m++; z--; for (j=0;j<y;j++) { if (i==n-1||j==n-m||j==n-z) printf("*"); else printf(" "); } printf("\n"); } return 0; }
1226
#include <bits/stdc++.h> using namespace std; int main(){ int n,i,j; cin>>n; for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++){ cout<<" "; } if(i==1){ for(j=1;j<=n;j++){ cout<<"*"; } }else{ cout<<"*"; for(j=1;j<=n+2*(i-2);j++){ cout<<" "; } cout<<"*"; } cout<<endl; } for(i=1;i<=n-1;i++){ for(j=1;j<=i;j++){ cout<<" "; } if(i==n-1){ for(j=1;j<=n;j++){ cout<<"*"; } }else{ cout<<"*"; for(j=(n-2-i)*2+n;j>=1;j--){ cout<<" "; } cout<<"*"; } cout<<endl; } return 0; }
1227
#include <bits/stdc++.h> using namespace std; int main() { int q, big, small, x, i; cin >> q >> big >> small; for (i = 2; i <= (q - 2 * small) / big; i = i + 2) { x = q - i * big; if (x % small == 0 && x / small % 2 == 0) { cout << i << " " << x / small << endl; } } return 0; }
1228
#include<bits/stdc++.h> using namespace std; int main() { int a[1000],b[0100],n,m; scanf("%d%d",&n,&m); int i,sum=0; for(i=0; i<n; i++) scanf("%d",&a[i]); sort(a,a+n); for(i=0;i<m;i++) b[i]=a[i]; for(i=m;i<n;i++) b[i]=b[i-m]+a[i]; for(i=0;i<n;i++) sum=sum+b[i]; printf("%d\n",sum); }
1229
#include <bits/stdc++.h> using namespace std; int a[1100],n,i,j,x,p,k = 0; int main() { cin>>n; for(i = 1;i <= n;i++) { cin>>x; p = -1; for(j = 1;j <= k;j++) { if(a[j] >= x) { p = j; break; } } if(p != -1) { a[p] = x; }else{ k++; a[k] = x; } } cout<<k; return 0; }
1230
#include <stdio.h> #include <math.h> int main() { int row,space,star,n,m; scanf("%d",&n); m=n-1; for(row=-m/2;row<=(n-1)/2;row++) { for(star=1;star<=0;star++) printf(" "); for(space=0;space<=abs(row);space++) printf("*"); printf("\n"); } }
1231
#include<iostream> #include<iomanip> using namespace std; int main() { int c=0,n,a[111],count=0,Max=0,sum=0; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; sum+=a[i]; } cout<<fixed<<setprecision(1)<<double(sum)/double(n)<<' '; for(int i=1;i<=n;i++){ if(a[i]>=double(sum)/double(n))c++; } cout<<c<<' '<<n-c; return 0; }
1232
#include <iostream> #include <iomanip> using namespace std; int main() { int n; cin >> n; int* p = new int[n]; int max = 0, max_loc = 0; int min = 0, min_loc = 0; for (int i = 0; i < n; i++) { cin >> p[i]; if (i == 0) { max = p[i]; min = p[i]; max_loc = 0; min_loc = 0; } if (p[i] > max) { max = p[i]; max_loc = i; } if (p[i] < min) { min = p[i]; min_loc = i; } } int temp = p[max_loc]; p[max_loc] = p[min_loc]; p[min_loc] = temp; for (int i = 0; i < n; i++) { cout << p[i] << " "; } delete[]p; return 0; }
1233
#include <iostream> #include <algorithm> #include <iomanip> using namespace std; int main() { int n; cin >> n; int* p = new int[n]; for (int i = 0; i < n; i++) { cin >> p[i]; } sort(p, p + n); double num = 0; if (n % 2 == 1) { num = p[(n - 1) / 2]; cout << fixed << setprecision(1) << num; } else { num = (p[(n - 1) / 2] + p[(n + 1) / 2]) / 2.0; cout << fixed << setprecision(1) << num; } delete[]p; return 0; }
1234
#include <iostream> #include <cmath> using namespace std; bool prime(int& n) { int prime = 1; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { prime = 0; break; } } if (prime == 1) { return true; } else { return false; } } void analyze(int &a, int &b) { int i; for (i = 2;; i++) { if (prime(i) == 1 && a % i == 0) { cout << i << " "; break; } } a /= i; b++; if (a != 1) { analyze(a,b); } else { return; } } int main() { int n; cin >> n; int num = 0; analyze(n, num); cout << endl << num; return 0; }
真的很抱歉,实在不会。搜过当没有答案,欢迎大佬留言。
1236
#include<bits/stdc++.h> using namespace std; int a[1000005]; int n,x; int bs(int x){ int left=1; int right=n; while(left<=right){ int mid=(left+right)/2; if(a[mid]==x){ return mid; } if(a[mid]>x){ right=mid-1; } if(a[mid]<x){ left=mid+1; } } return -1; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>x; cout<<bs(x); return 0; }
1238
#include<iostream> using namespace std; int main() { int o; cin>>o; unsigned long long a[717]={0,1,1}; for(int i=3;i<=o;i++) { a[i]=a[ i - 2 ]+a[ i - 1 ]; } cout<<a[o]; }
1239
#include <bits/stdc++.h> int main() { int n,i,j,m=0,z; scanf("%d",&n); z=n+1; if(n>=3&&n<=79) { for (i=0;i<n;i++) { m++; z--; for (j=0;j<n;j++) { if (j==n-m||j==n-z) printf("X"); else printf(" "); } printf("\n"); } } return 0; }
1240
#include <bits/stdc++.h> using namespace std; void fun(int n){ if(n==0) cout<<"ling"; else if(n==1) cout<<"yi"; else if(n==2) cout<<"er"; else if(n==3) cout<<"san"; else if(n==4) cout<<"si"; else if(n==5) cout<<"wu"; else if(n==6) cout<<"liu"; else if(n==7) cout<<"qi"; else if(n==8) cout<<"ba"; else if(n==9) cout<<"jiu"; } int main(){ int n; cin>>n; if(n < 10) fun(n); else{ int s = n / 10; int g = n % 10; if(s != 1){ fun(s); cout<<" "; } cout<<"shi"; if(g != 0){ cout<<" "; fun(g); } } return 0; }
最后希望宏远小虎(本队)能在U12组别卫冕全国冠军!