2020级CHD新生训练题题解
生活随笔
收集整理的這篇文章主要介紹了
2020级CHD新生训练题题解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這次的題解大多是用的C語言的輸入輸出,如果對C語言的基礎(chǔ)語法不太熟悉可以看lxh的這篇博客
C語言入門簡介
A HDU1000
水題注意代碼的規(guī)范性即可
#include <iostream> using namespace std; int main(){int a,b;while(cin>>a>>b){cout<<a+b<<endl;}return 0;}B HDU1001
注意一下C和C++多組輸入的格式
#include <iostream> #include<cstdio> using namespace std; int main() {int n;while(scanf("%d",&n)!=EOF){int sum=0;for(int i=1;i<=n;i++) sum+=i;printf("%d\n\n",sum);}return 0; }C HDU2001
sqrt()函數(shù)是對內(nèi)部開根號,使用此函數(shù)需要使用頭文件cmath
#include <iostream> #include<cstdio> #include<cmath> using namespace std; int main() {double x1,y1,x2,y2;while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)!=EOF){printf("%.2lf\n",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));}return 0;}D HDU2003
這里可以記一下C保留小數(shù)的方法
#include <iostream> #include<cstdio> using namespace std; int main() {double n;while(scanf("%lf",&n)!=EOF){if(n<0) printf("%.2lf\n",-n);else printf("%.2lf\n",n);}return 0; }E HDU2004
可能第一時間會想到用switch做,但其實有更好的辦法。設(shè)置字符數(shù)組,讓對應(yīng)的分?jǐn)?shù)區(qū)間對應(yīng)到相應(yīng)的成績即可
#include <iostream> #include<cstdio> using namespace std; int main() {int score;char jilu[] = "EEEEEEDCBAA";while(scanf("%d", &score) != EOF) {if(score < 0 || score > 100)printf("Score is error!\n");elseprintf("%c\n", jilu[score/10]); //score是int形,score/10會自動下取整}return 0; }F HDU2006
這題沒啥好說的
#include <cstdio> #include<iostream> int main() {int n,a,sum;while(scanf("%d",&n)!= EOF){sum = 1;for(int i=1;i<=n;i++){scanf("%d",&a);if(a%2)sum *= a;}printf("%d\n",sum);}return 0;}G HDU2039
水題
H HDU2023
要想到用二維數(shù)組來存儲信息,行 為一個人的各科目的成績,列 為某一科所有人的成績。這樣存儲后方便計算均值和比較
//注意題干要求輸出各科成績均大于等于平均成績的學(xué)生數(shù)量 #include<iostream> #include<cstdio> using namespace std; int main() {int m,n;int a[50][5];double stu[50],sub[5]; //sub用來存儲各科的平均成績while (cin>>n>>m){for(int i=0;i<n;i++)for(int j=0;j<m;j++)cin>>a[i][j];for(int i=0;i<n;i++){stu[i]=0;for(int j=0;j<m;j++)stu[i]+=a[i][j];stu[i]/=(m*1.0);}for(int j=0;j<m;j++){sub[j]=0;for(int i=0;i<n;i++)sub[j]+=a[i][j];sub[j]/=(n*1.0);}int sum=0,flag;for(int i=0;i<n;i++){flag=0;for(int j=0;j<m;j++){if(a[i][j]<sub[j]){flag=1;break;}}if(flag==0)sum++; //查找各科成績都大于等于平均成績的數(shù)量}for(int i=0;i<n-1;i++)printf("%.2lf ",stu[i]);printf("%.2lf\n",stu[n-1]);for(int j=0;j<m-1;j++)printf("%.2lf ",sub[j]);printf("%.2lf\n",sub[m-1]);cout<<sum<<endl;cout<<endl;} }I HDU2012
判斷一個數(shù)n是否為素數(shù),暴力點的做法就是從2到sqrt(n)遍歷,只要在2-sqrt(n)找到一個數(shù)可以使n被整除則n不為素數(shù),反之則為素數(shù)。(以后學(xué)長們會講更好的方法)
J HDU1846
經(jīng)典博弈論問題,上次宣講會上的題目,要理解m+1的由來。如果n%m+1為零 則讓后手每次去湊m+1的倍數(shù)可以保證后手必勝。同理若n%m+1不為零,則先手必勝。(可以找你的室友測試一下!
)
題目都不難,還是希望大家都能多花點時間刷題,假期也不要懈怠
總結(jié)
以上是生活随笔為你收集整理的2020级CHD新生训练题题解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 未转变者服务器关雨指令,Unturned
- 下一篇: 第3章 词性标注(pos、N-gram、