1. 程式人生 > >【C語言練習】3.0

【C語言練習】3.0

1、 用標準C程式設計:找出整形數字1-100之間的素數,並打印出來。(素數:除了1和自己本身可以被整除。)

#include<stdio.h>
/*
用標準C程式設計:找出整形數字1-100之間的素數,並打印出來。
(素數:除了1和自己本身可以被整除。)
*/
main(){
    int sum = 0;
    for (int i = 1; i <= 100; i++){
        for (int j = 2; j <= i; j++){
            if (i%j == 0 && i != j){
                break
; } if (i%j == 0 && i == j){ sum++; } } } printf("100以內的素數數量為:%d", sum); getch(); return 0; }

2、 用標準C程式設計:有兩個整形變數m、n,求出這兩個數的最小公倍數。

#include<stdio.h>
/*
用標準C程式設計:有兩個整形變數m、n,求出這兩個數的最小公倍數。
*/
int getLeastCommonMultiple(int
a, int b); main(){ printf("請輸入兩個數"); int a = 0; int b = 0; scanf("%d %d",&a,&b); int num=getLeastCommonMultiple(a,b); printf("兩個數字的最小公倍數為:%d",num); getch(); return 0; } //輾轉相除法求最大公約數 int greatestCommonDivisor(int a,int b){ int temp = 0; if (a < b){ temp = a; a = b; b = temp; } while
(b != 0){ temp = a%b; a = b; b = temp; } return a; } int getLeastCommonMultiple(int a,int b){ //將求最大公約數,最小公倍數寫在一個函式中,極其容易操作相互影響,影響結果 //最好分為兩個函式寫,結構清晰 /* int greatestCommonDivisor = 0; int r = 0; int a1 = a; int b1 = b; _Bool flag = 1; while (flag){ if (r == 0){ greatestCommonDivisor = a1; flag = 0; } else{ if (a1 > b1){ r = a1%b1; }else { r = b1%a1; } r = a1%b1; a1 = b1; b1 = r; } } */ return (a*b)/greatestCommonDivisor(a,b);//公式法求最大公倍數 }

用標準C程式設計:輸出楊輝三角形的前10行:三角形的每一行是(x+y)^n的展開式各項的係數。
例如:
第一行是(x+y)^0,其係數為1;
第二行是(x+y)^1,其係數為1;
第三行是(x+y)^2,其展開式為x2+2xy+y2,係數分別為1,2,1;
直觀形式如下:
1
1  1
1  2  1
1  3  3  1
1  4  6  4  1
1  5  10  10  5  1

#include<stdio.h>
/*
用標準C程式設計:輸出楊輝三角形的前10行:三角形的每一行是(x+y)^n的展開式各項的係數。
直觀形式如下:
1
1       1
1       2    1
1       3    3    1
1       4    6    4    1
1       5    10   10   5   1
*/
//先用遞迴求出第n行第m項的數
int method(int n,int m){
    if (n == m || m == 1){
        return 1;
    }
    return method(n - 1, m) + method(n - 1, m - 1);
}

main(){
    //用for迴圈打印出每行
    for (int i = 1; i <= 10; i++){
        for (int j = 1; j <= i; j++){
            int z = method(i, j);
            printf("%d \t ",z);
        }
        printf("\n");
    }
    getch();
    return 0;
}