我的函數獲取一個數字並返回包含輸入的輸入之前的數字之和;不過,我想知道是否可以計算從1開始的連續整數之和爲N(輸入)如何使用遞歸函數計算從1開始到n結束的連續整數之和
#include<stdio.h>
int sum(int x){
if(x>0)return x+sum(x-1);
else return 0;
}
main(){
int x;
scanf("%d",&x);;
printf("%d\n\n",sum(x));
}
結束,我發現我的問題的答案,但stackoverflow.com不讓我回答它。所以,我會在這裏回答它:
它非常簡單,它只需要另一個增量參數,另一個跟蹤輸入的值。
#include<stdio.h>
int sum(int x,int t){
if(t<=x) return t+sum(x,t+1);
else return 0;
}
main(){
int x;
printf("enter int: ");
scanf("%d",&x);
printf("%d\n",sum(x,0));
}
在哪些方面你的代碼沒有你想要它做什麼? – jwodder
它有一個封閉的數學公式('(x *(x + 1))/ 2')。遞歸不是必需的,但是你寫的看起來好像會起作用。 –
事實上,它的工作原理,但我不知道我是否可以做到這一點從一個輸入,而不使用數學公式。 –