實驗五:優(yōu)秀代碼

A : 公約數(shù)與公倍數(shù)

題目描述:
輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。

優(yōu)秀代碼

author: 
2016150111
result: 正確
codes:
#include<stdio.h>
int main()
{
    int m,n,a,b,c;
    scanf("%d%d",&m,&n);
    m>=n?(a=m,b=n):(a=n,b=m);
    do
    {
        c=a%b;
        a=b;
        b=c;
    }while(c!=0);
    printf("%d %d",a,(m*n/a));
    return 0;
}

點評 : 考慮了m大于n的情況,縮進到位。

B : 求1!+2!+3!+....+n! 之值

題目描述
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一個數(shù)字。 

優(yōu)秀代碼

author: 
2016150127
result: 正確
codes:
#include<stdio.h>
int main()
{
    int n,i,sum=0,index=1;
    scanf("%d",&n);
    
    for (i=1;i<=n;i++)
    {
        index=index*i;
        sum+=index; 
    }
    printf("%d",sum);
    return 0;
    //5->153;2->3
}

點評 : 一個循環(huán)就完成了計算,縮進也到位,該題比較 。

C : 求N以內的完數(shù)

題目描述
一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為"完數(shù)"。 例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數(shù)"。 編程序找出N之內的所有完數(shù),并按下面格式輸出其因子:

優(yōu)秀代碼

// 由于這道題大家實在寫的不夠簡練。我自己寫了一份,順便給大家參考下格式
#include <stdio.h>

int main () {
    int num, i, j; // 注意逗號后面有個空格
    scanf("%d", &num); 
    for (i=2; i<n; i++) { // 此處的前花括號是否換行皆可
        int sum = 0;
        for (j=1; j<=i/2; j++) // 計算到i/2
            if (i % j == 0) sum += j;
        if (sum == i) {
            printf("%d its factors are ", i);
            for(j=1; j<=i/2; j++) // 再次計算因子然后輸出
                if (i % j == 0) printf("%d ", j);
            putchar('\n');
        }
    }
    return 0;
}
}

點評 : 代碼縮進很到位,

D : 序列求和

題目描述
有一分數(shù)序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出這個數(shù)列的前N項之和,保留兩位小數(shù)。

優(yōu)秀代碼

#include<stdio.h>

int main(){
    int n;
    scanf("%d",&n);
    double up=2,down=1,sum=0,t;
    for(int i=0;i<n;i++) {
        sum+=up/down;
        t=up;
        up=up+down;
        down=t;
    }
    printf("%.2lf\n",sum);
    return 0;
}

點評 : 做過的題,不做評價,關鍵縮進到位。

E : 輸出m到n之間的水仙花數(shù)

題目描述
如果一個三位數(shù)等于它自己的每一位數(shù)字的立方之和,則稱此數(shù)為“水仙化數(shù)”,如153=13+53+33。給出范圍的起止值,輸出該范圍的水仙花數(shù)。
(提示:可使用ctype.h中的函數(shù))

優(yōu)秀代碼

#include <stdio.h>
int main()
{
    int a,b,c,d,e,f;
    scanf("%d%d",&a,&b);
    for(c=a;c<=b;c++)
    {
        if(c>=100 && c<=999) {
            d=c/100;
            e=c%100/10;
            f=c%10;
            if(c==d*d*d+e*e*e+f*f*f)
            {
                printf("%d\n",c);
            }
        }
       }
    return 0;   
}

點評 : 這道題很多人都忽略了一個點。水仙花數(shù)是三位數(shù)。

F:數(shù)組排序

題目描述
定義一個10個元素的整型數(shù)組,輸入10個整數(shù)到數(shù)組,對數(shù)組排序,然后輸出。注意:輸出時,每個元素之間以空格相間,但最后一個元素后面沒有空格,直接換行。

優(yōu)秀代碼

#include<stdio.h>
#define k 10
int main()
{
    int a[k],i,j,t,n,p,c;
    int flag;
    scanf("%d",&p);
    for(n=0;n<p;n++) {
        for(i=0;i<k;i++)
            scanf("%d",&a[i]);
        for(i=0;i<k;i++) {
            flag=0;
            for(j=0;j<k-1;j++)
                if(a[j]>a[j+1]) {
                    t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                    flag=1;
                }
            if(flag==0)
                break;
        }
        for(c=0;c<k;c++)
            printf(c==9?"%d\n":"%d ",a[c]);
    }
    return 0;
}

點評:我不管我就喜歡那些看著舒服(縮進到位)的代碼。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,916評論 0 33
  • 纖月黃昏院,輕暈人醉淺。 籠花嬌欲泣,憶久只自憐。 青絲待霜白,紅妝換舊顏。 玉枕淚痕泫,情深無由怨。
    時影書閱讀 321評論 0 6
  • 春, 寂靜,繽紛。 風裊裊,水粼粼。 桃妍鳥寂,柳媚花馨。 遠山青欲晚,芳草碧如茵。 醉去意腸入酒,傷離愁淚沾襟。...
    眉間飛雪閱讀 395評論 12 17
  • 好像是芭蕾的某個姿勢又好像不是 草圖以及半成品
    Lacrey閱讀 343評論 1 5
  • 10月除去假期基本都在其他城市出差,盡管忙碌,但是仍然沒有拉下任何一天的清朗創(chuàng)作,對,我覺得已經(jīng)不是在打卡了...
    緣無常閱讀 136評論 0 0

友情鏈接更多精彩內容