C語(yǔ)言實(shí)現(xiàn)階乘的示例詳解
前言
在現(xiàn)實(shí)中,我們做數(shù)學(xué)題總會(huì)遇到階乘問(wèn)題,這在計(jì)算機(jī)中也不例外。 那我們應(yīng)該怎么實(shí)現(xiàn)呢?
我記得很多老師在電腦上書(shū)寫(xiě)階乘都是用!這個(gè)符號(hào)表示。 比如5的階乘,寫(xiě)為5!。 這在C語(yǔ)言中是行不通的,下面我講解C語(yǔ)言中階乘的實(shí)現(xiàn)。
1.階乘實(shí)現(xiàn)
1.1理論步驟
我們可以利用while、do……while、以及for等循環(huán)實(shí)現(xiàn),實(shí)現(xiàn)功能如下:
我們先設(shè)置好3個(gè)變量,i、n(想要的階層數(shù))、jieceng(階層結(jié)果)
利用循環(huán)得到相應(yīng)階乘
1.2實(shí)踐結(jié)果
這里用3種循環(huán)都展示一下
while實(shí)現(xiàn)
#include <stdio.h> int main() { int i = 1; int n = 0; int jieceng = 1; scanf("%d", &n); //輸入想得到的階層數(shù) while (i <= n) { jieceng *= i; i++; } printf("%d的階層是%d\n", n, jieceng); return 0; }
do……while實(shí)現(xiàn)
#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實(shí)現(xiàn)
#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.連續(xù)乘層相加實(shí)現(xiàn)
2.1理論步驟
首先明確要連續(xù)相加,必然需要2層循環(huán)嵌套
2.2實(shí)踐結(jié)果
我這里用2層for循環(huán)實(shí)現(xiàn)
#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); //設(shè)置想要到達(dá)的n值 for (j = 1; j <= n; j++) { for (i = 1, jiecen =1; i <= j; i++) //重置jieceng,使每次從1開(kāi)始 { jiecen = jiecen * i; //里循環(huán)得每一相應(yīng)階層數(shù) } sum += jiecen; //階層之和 } printf("%d\n", sum); return 0; }
一層for循環(huán)實(shí)現(xiàn)(簡(jiǎn)潔版)
#include <stdio.h> int main() //算1~10階層相加(j簡(jiǎn)短版)好** { 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語(yǔ)言實(shí)現(xiàn)階乘的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言 階乘的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于OpenCV?差分法實(shí)現(xiàn)綠葉識(shí)別
物體識(shí)別是圖像處理學(xué)在現(xiàn)實(shí)生活中較多的應(yīng)用之一,本文提供了一種相對(duì)簡(jiǎn)單的思路來(lái)實(shí)現(xiàn)綠葉識(shí)別,適合初學(xué)圖像處理的新人研究參考。感興趣的同學(xué)可以關(guān)注一下2021-11-11C語(yǔ)言實(shí)現(xiàn)經(jīng)典24點(diǎn)紙牌益智游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)經(jīng)典24點(diǎn)紙牌益智游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10C++用mysql自帶的頭文件連接數(shù)據(jù)庫(kù)
現(xiàn)在正做一個(gè)接口,通過(guò)不同的連接字符串操作不同的數(shù)據(jù)庫(kù)。要用到mysql數(shù)據(jù)庫(kù)。通過(guò)網(wǎng)上的一些資料和自己的摸索,大致清楚了C++連接mysql的方法??梢酝ㄟ^(guò)2種方法實(shí)現(xiàn)。第一種方法是利用ADO連接,第二種方法是利用mysql自己的api函數(shù)進(jìn)行連接。今天主要來(lái)講解下使用API2016-07-07C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷小功能
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03詳解Dev C++使用教程(使用Dev C++編寫(xiě)C語(yǔ)言程序)
這篇文章主要介紹了詳解Dev C++使用教程(使用Dev C++編寫(xiě)C語(yǔ)言程序),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03C++基礎(chǔ)入門(mén)教程(三):數(shù)組、字符串、結(jié)構(gòu)體、共用體
這篇文章主要介紹了C++基礎(chǔ)入門(mén)教程(三):數(shù)組、字符串、結(jié)構(gòu)體、共用體,需要的朋友可以參考下2014-11-11Qt實(shí)現(xiàn)自定義日志類(lèi)的示例代碼
這篇文章主要為大家詳細(xì)介紹了使用 qInstallMessageHandler() 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的日志工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2023-12-12C語(yǔ)言實(shí)例講解四大循環(huán)語(yǔ)句的使用
C語(yǔ)言有四大循環(huán)語(yǔ)句,他們之間可以進(jìn)行任意轉(zhuǎn)換。本文將首先對(duì)其語(yǔ)法進(jìn)行講解,然后通過(guò)一個(gè)實(shí)例用四種循環(huán)來(lái)實(shí)現(xiàn)。相信通過(guò)本文的學(xué)習(xí),大家都能夠?qū)語(yǔ)言循環(huán)語(yǔ)句有著熟練的掌握2022-05-05