1. 程式人生 > >【練習】計算1!+2!+...+n!之和

【練習】計算1!+2!+...+n!之和

方法1用2層迴圈控制,外部決定1到10(階乘數的變化),內部負責計算階乘,最後把每次階乘相加

注意:

(1)外部迴圈每進來一次(i變一次)將sum重置1,否則sum是上一個數字的階乘

#include <stdio.h>
int main ()
{
	int i=0,j=0,sum=1,n=0,N=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum=1;  //i每變一次,將sum重置1,不然sum是上一次算下來的階乘
		for(j=1;j<=i;j++)
			{	
		sum=sum*j;  //1-n之間壘乘
			}
		N=N+sum;
	}
	printf("%d",N);
	return 0;
}

方法2:這種方法相對於上一種比較優化,就是比如說你要計算5!不需要從一乘到5,直接利用前面得到的結果4!直接乘以5即可,程式簡單很多

注意:

(1)直接輸出ret=ret*i的話,是1到n的累乘(n的階乘),如果ret=ret*i;sum=sum+ret;放在迴圈裡執行,
最後輸出sum的話,是計算1!+2!+。。。n!之和
(2)這種演算法相當於比如說計算5!,不要從1乘到5,直接用4!乘以5,其他的類似
int main ()
{
	int i=0,ret=1,n=0,sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		ret=ret*i;  //從1開始累乘
		sum=sum+ret;  //1!,2!...n!累加
	}
	printf("%d",sum);
	return 0;
}




相關推薦

練習計算1+2+...+n!之和

方法1:用2層迴圈控制,外部決定1到10(階乘數的變化),內部負責計算階乘,最後把每次階乘相加 注意: (1)外部迴圈每進來一次(i變一次)將sum重置1,否則sum是上一個數字的階乘 #include <stdio.h> int main () { int

Poco 1.4.2 HTTPClientSession/HTTPRequest 使用使用代理(proxy)需要註意的一點

方法 xxx and aid csdn 代理 ref cpp logs Poco 1.4.2 HTTPClientSession/HTTPClientSession 在使用代理的時候,request的URI不能包含協議和主機。否則會出錯。 不使用代理的時候,以下代碼能正

C總結1.函式 2.陣列)

函式 1.函式的定義 計算機的函式,是一個固定的一個程式段,或稱其為一個子程式,它在可以實現固定運算功能的同時,還帶有一個入口和一個出口,所謂的入口,就是函式所帶的各個引數,我們可以通過這個入口,把函式的引數值代入子程式,供計算機處理;所謂出口,就是指函式的函式值,在計算機求得之後,

K8SK8S 1.18.2安裝dashboard(基於kubernetes-dashboard 2.0.0版本)

## 【K8S】K8S 1.18.2安裝dashboard(基於kubernetes-dashboard 2.0.0版本) ## 寫在前面 > K8S叢集部署成功了,如何對叢集進行視覺化管理呢?彆著急,接下來,我們一起搭建kubernetes-dashboard來解決這個問題。 > >

Kubernetes三小時攻克 Kubernetes(2):為每個服務創建容器鏡像

優點 可能 意思 localhost 內容 env 只需要 時間 img 容器是什麽 Kubernetes 是容器管理平臺。可想而知我們需要容器去管理它們。但是容器是什麽?Docker 官方文檔的最佳答案如下: 容器映像是輕量級的、獨立的、可執行軟件包,包含所有可運行的東

計算1+2+3+4+……+10

#include <stdio.h> #include <stdlib.h> int Factor(int n) { int result = 1; for (int i = 1; i <= n; i += 1) { result *=i; } return r

android5.1裡面的user-app的預設許可權設定

  在 frameworks/base/services/core/java/com/android/server/AppOpsPolicy.java中:public boolean isControlAllowed(int code, String packageName) { 

輸入n , 計算sum=1+2+3+..........+n!的末6位(不含前導0)。

要求n<=10^6,n!表示前n個正整數之積。如輸入n=10;輸出37913 #include<iostream> #include<math.h> using namespace std; int main() { long lo

C語言計算1-1/2+1/3-1/4+1/5 …… + 1/99

//計算1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100的值 #include <stdio.h> int main() { float sum=0; fl

Java大整數運算之計算1+2+…+100的總和.

最近開了Java課程,可是課後習題似乎有點超前了一點點,莫非老師要鍛鍊我們的動手能力……………….. Java大整數運算轉載 import java.util.*; import java.math

Java_whilefor-->計算1+2+3+..+10

計算1!+2!+3!+..+10!(這個題我沒有完成,得到了錯誤答案) 錯誤的解題思路:先思考單個的階乘該如何實現,乘法計算的多次操作通過for迴圈來實現 以3的階乘為例 3! for (int n = 1; n <=3; n++) { MultSum *= n;

計算1+2+...+10的值

public class FactorialSum {     public static void main(String[] args)     {         /*         需求:         計算1!+2!+...+10!的和並列印輸出       

C 計算1+2+3......+10

1.程式程式碼#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <Windows.h>int main(){int total = 0, i=0, n = 0;for (n = 1;

用C語言計算1+2+3

test.c #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int i = 0; int sum = 0; int ret = 1; for (i = 1; i <

重要NOI-1.2-10-字符串大小

param print .cn itl 時間限制 algo params pac 空間大小 10:Hello, World!的大小 查看 提交 統計 提問 總時間限制: 1000ms 內存限制: 65536kB描述 還記得在上一章裏,我們曾經輸出過的“Hello

1+2+3+...+n!=?

而且 可見 階乘 得到 ech 後來 開始 java 運行 編寫一個Java程序輸出1!+2!+3!+……+n!的和? public class GetSumMethod { /** * 利用遞歸寫的一個階乘運算,發

轉載運維職業向我是怎麽入得運維行業?運維工程師入門必備技能以及打怪升級篇

能說 還要 作用 經歷 人工智能 details 最大堆 orm lock 前言:轉載 陳浩一個從事安全運維向的前輩文章。寫的很好。人非常nice,遇到了問題,qq上很快就回復了我。 大道三千 入門最難,凡事入了行,也就什麽都好說了,好的自然不斷努力奮鬥修行,不好的自然很快

遞歸算法:求解1+2+3+...+n!

system pub 般的 計算 求解 pan ati ram span 遞歸算法:求解1!+2!+3!+...+n!。    /** * 遞歸方法計算 1!+2!+3!+4!....+n! * @param number */

Redis入門就這一篇

弊端 use total 嚴重 之一 sts 內存條 秒殺 DC Redis 概述 在我們日常的Java Web開發中,無不都是使用數據庫來進行數據的存儲,由於一般的系統任務中通常不會存在高並發的情況,所以這樣看起來並沒有什麽問題,可是一旦涉及大數據量的需求,比如一些商品

[Guitar self-practising] 吉他練習王-節奏練習曲目1 基本掃弦節奏練習

            這本書來自吉他練習王-節奏練習, 大家可以自行到網上搜搜電子版看看。             掃弦練習: 將左手輕輕靠著琴絃, mute琴絃。右手拿上撥片, 節拍器