【C語言練習】3.0
阿新 • • 發佈:2019-02-11
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;
}