【C語言】求1-N的和(遞迴法)
遞迴公式:
條件:f(1) = 1
遞迴條件:f(n-1) + n
為了手機顯示方便(配圖):
程式碼為:
//求1-N的和
#include "stdio.h"
int f(int n) {
//定義函式f 出口為n等於1,否則將n與f(n-1)相加
if(n == 1) {//出口
return(1);
}else{//遞迴公式
return(f(n-1) + n);
}
}
int main() {
//取1-100的值
printf(" sum=%d\n",f(100));
return 0;
}
執行結果:
相關推薦
【C語言】求1-N的和(遞迴法)
遞迴公式: 條件:f(1) = 1 遞迴條件:f(n-1) + n 為了手機顯示方便(配圖): 程式碼為: //求1-N的和 #include "stdio.h" int f(int n) { //定義函式f 出口為n等於1,否則將n與f(n-1)相
【C語言】求1!+2!+3!+......+10!
通常我們使用函式:int fun(n)實現階乘求和功能;這次我們不用函式實現。而使用for迴圈。#include <stdio.h> int main () { int i,j,n = 1,m = 1; int sum = 0; for(i
【C語言】求序列2/1+3/2+5/3+8/5+13/8+........前20項和。
我們能直接從序列上觀察出規律:(1)首先每一項的分母都與其前一項的分子相等, (2)每一項的分子都等於其前一項的分子與分母和。知道了規律,我們就好辦事兒!#include <stdio.h> int main () { double i = 2.0,j =
【C語言】求N的階乘
求N的階乘 //輸入一個數 n ,求n! #include "stdio.h" int main(){ int n,i; double l = 1; //提高精度 printf("Enter N:"); scanf("%d",&n); for(i = n; i
【C語言】求一個數的二進位制中 1 的個數
求一個數的二進位制的1的個數 1,通過模除的方法 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { int i = 0;
【c語言】求方程式 ax^2+bx+c=0 的根,分別考慮:1、有兩個不等的實根 2、有兩個相等的實根
// 求方程式 ax^2+bx+c=0 的根,分別考慮:1、有兩個不等的實根 2、有兩個相等的實根 #include <stdio.h> #include <math.h> int main() { int d; int a,b,c; do
【C語言】求Fibonacci數列前40項(迴圈)
程式碼為: //求Fibonacci數列前40項 #include "stdio.h" int main(){ long int f1,f2,i; f1 = 1; f2 = 1; //賦初始值 for(i = 1;i<=20;i++){//迴圈20次,一次兩個,結
【C語言】求Fibonacci數列的前20項(陣列)
//求Fibonacci數列的前20項 #include "stdio.h" int main(){ int i,j; int f[20] = {1,1};//賦值數列前兩項
【C語言】求一千以內的素數 第一種方法
第一種方法:平常思維(人們第一印象會想到的) //什麼是素數? -- 除了1和本身之外不能被其他數整除的數 #include "stdio.h" int main(){ int n,j,f;//變數解釋:n為我們要判斷的數,j為要與n相除的數,f為標誌 0 表示不是素數
【C語言】對一個n*n矩陣,通過行變換,使其每行元素的平均值按遞增順序排序
#include<stdio.h> int main() { int n,a[100][100],r,c,i,j; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%d",&am
【C語言】巨集定義define 和型別重新命名typedef
C語言裡面有兩個不容易區分的語法概念,巨集定義define 和型別重新命名typedef。下面我們來談一下兩者之間的差異。 1.型別重新命名typedef: 關鍵字typedef提供了一種為已定義好的資料型別建立別名的機制,為了建立更簡短的型別名,通常使用type
【C語言】第二章-分支和迴圈語句-2
第2節 在本節中,我會用程式碼實現幾個例子,來供大家深入瞭解和學習分支以及迴圈語句。 查詢 查詢的含義就是在一個表中找出關鍵字與所給值相同的元素,如果找到了則返回下標,找不到則返回-1。 這裡先演示最為普通的查詢,逐個查詢,這是最為普通的演算法思想。
【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
【C語言】函式指標陣列和指向函式指標陣列的指標
一、函式指標陣列1.1函式指標陣列的宣告 函式指標陣列的宣告如下,所謂函式指標陣列就是在之前的函式指標的基礎上增加了[],由於[]的優先順序高於*,故 pf先與[]結合,說明它是一個數組,再與*結合說明陣列中的元素的型別是指標,再看後面的引數列表,說明每一個指標都指
【C語言】求階乘與階乘之和
中學我們都學習了階乘的求法,比如要求整數n的階乘,則n!=n×(n-1)×(n-2)×…×2×1。現在有兩個問題,要用C語言編寫程式求n的階乘,以及求1!+2!+3!…+n!,該如何解決呢? 問題1:求n的階乘。 實現思路: 問題中的n需要
【C語言】求一個數的二進位制位模式從左到右翻轉後對應的十進位制值。
用函式unsigned int reverse_bit(unsigned int value)實現想要的功能 value是我們想要求的值。 #include <stdio.h> #include <math.h> unsigned
【C語言】求兩個數的最大公約數
思路: 輾轉相除法:以小的數除大數,所得的是整數,那這個數就是最大公約數,不然就用餘數來除剛才的除數,直到得到整數,這時作為除數的就是最大公約數。 #include<stdio.h>
【C語言】求數值的正數次方
//數值的正數次方 //實現函式double power(double base, int exponent),求base的exponent次方,不得使用庫函式,不需要考慮大數問題。 //注意:考慮非
【C語言】動態連結串列和靜態連結串列的建立
動態連結串列和靜態連結串列 #include<stdio.h> #include<stdlib.h> #include<malloc.h> struct wep{
【C語言】求100~200之間的素數
分析: 判斷一個正整數m是否為素數有多種方法。 方法1:讓m依次被2,3,…,m-1除,如果m不能被2~m-1中的任何一個整數整除,則m是素數。 方法2:讓m依次被2,3,…,m/2除,如果m不能被2~m/2中的任何一個整數整除,則m是