参考答案

第一次参考-来自陈龙大佬.pdf

  • 计算两点距离

    1. #include <iostream>
    2. #include <iomanip>
    3. #include <math.h>
    4. using namespace std;
    5. int main(){
    6. double a1,a2,b1,b2;
    7. while(cin>>a1>>a2>>b1>>b2){
    8. double c = pow(a1-a2,2) + pow(b1-b2,2);
    9. printf("%.2lf",pow(c,0.5));
    10. cout<<endl;
    11. }
    12. return 0;
    13. }
  • 第几天

    1. #include <stdio.h>
    2. using namespace std;
    3. int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    4. bool check_y(int y){
    5. if(y % 400 == 0 || y % 4 == 0 && y % 100 != 0) return 1;
    6. return 0;
    7. }
    8. int main(){
    9. int y,m,d;
    10. int sum = 0;
    11. while(scanf("%d/%d/%d",&y,&m,&d)){
    12. sum = 0;
    13. if(check_y(y)) month[2] = 29;
    14. else month[2] = 28;
    15. int t = 1;
    16. while(t <= m - 1){
    17. sum += month[t];
    18. t ++;
    19. }
    20. sum += d;
    21. printf("%d\n",sum);
    22. }
    23. return 0;
    24. }
  • ASCALL排序

    1. #include <stdio.h>
    2. #include <iostream>
    3. #include <algorithm>
    4. using namespace std;
    5. int main(){
    6. char list[3];
    7. char a,b,c;
    8. while(cin>>a>>b>>c){
    9. list[0] = a;
    10. list[1] = b;
    11. list[2] = c;
    12. sort(list,list+3);
    13. for(int i = 0;i < 3;i++) cout<<list[i]<<" ";
    14. cout<<endl;
    15. }
    16. return 0;
    17. }
  • 母牛的故事

    1. #include <iostream>
    2. using namespace std;
    3. int a[56] = {0};
    4. int main(){
    5. for(int i = 1;i <= 4;i++){
    6. a[i] = i;
    7. }
    8. for(int i = 5;i <= 55;i++){
    9. a[i] = a[i - 1] + a[i - 3];
    10. }
    11. int n;
    12. while(cin>>n){
    13. if(n) cout<<a[n]<<endl;
    14. }
    15. return 0;
    16. }