C語言實現階乘的示例詳解
前言
在現實中,我們做數學題總會遇到階乘問題,這在計算機中也不例外。 那我們應該怎麼實現呢?
我記得很多老師在電腦上書寫階乘都是用!這個符號表示。 比如5的階乘,寫為5!。 這在C語言中是行不通的,下面我講解C語言中階乘的實現。
1.階乘實現
1.1理論步驟
我們可以利用while、do……while、以及for等循環實現,實現功能如下:
我們先設置好3個變量,i、n(想要的階層數)、jieceng(階層結果)
利用循環得到相應階乘
1.2實踐結果
這裡用3種循環都展示一下
while實現
#include <stdio.h> int main() { int i = 1; int n = 0; int jieceng = 1; scanf("%d", &n); //輸入想得到的階層數 while (i <= n) { jieceng *= i; i++; } printf("%d的階層是%d\n", n, jieceng); return 0; }
do……while實現
#include <stdio.h> int main() { int i = 1; int n = 0; int jieceng = 1; scanf("%d", &n); do { jieceng *= i; i++; } while (i <= n); printf("%d的階層是%d\n", n, jieceng); return 0; }
for實現
#include <stdio.h> int main() { int i = 1; int n = 0; int jieceng = 1; scanf("%d", &n); for (i = 1; i <= n; i++) { jieceng *= i; } printf("%d的階層是%d\n", n, jieceng); return 0; }
2.連續乘層相加實現
2.1理論步驟
首先明確要連續相加,必然需要2層循環嵌套
2.2實踐結果
我這裡用2層for循環實現
#include<stdio.h> int main() //算1~n階層相加 { int sum = 0; int jiecen = 0; int i = 0; int j = 0; int n = 0; scanf("%d", &n); //設置想要到達的n值 for (j = 1; j <= n; j++) { for (i = 1, jiecen =1; i <= j; i++) //重置jieceng,使每次從1開始 { jiecen = jiecen * i; //裡循環得每一相應階層數 } sum += jiecen; //階層之和 } printf("%d\n", sum); return 0; }
一層for循環實現(簡潔版)
#include <stdio.h> int main() //算1~10階層相加(j簡短版)好** { int sum = 0; int jiecen = 1; int i = 0; int n = 0; scanf("%d", &n); for (i = 1; i <= n; i++) { jiecen = jiecen * i; sum += jiecen; } printf("%d\n", sum); return 0; }
以上就是C語言實現階乘的示例詳解的詳細內容,更多關於C語言 階乘的資料請關註WalkonNet其它相關文章!