標題:
遞迴函式 (一) - 階層運算
[打印本頁]
作者:
周政輝
時間:
2018-6-9 14:32
標題:
遞迴函式 (一) - 階層運算
利用函式遞迴法設計一程式, 讓使用者輸入一個階層數, 電腦計算出答案.
例如: 輸入 5 其算式為 1*2*3*4*5 因此答案是 120
輸入 3 其算式為 1*2*3 因此答案是 6
[attach]4225[/attach]
作者:
鄭楀諺
時間:
2018-6-9 15:13
#include <cstdlib>
#include <iostream>
using namespace std;
int print(int start,int result)
{
int total=result;
if(start>0)
{
total=total*start;
start--;
return print(start,total);
}
else
{
return total;
}
}
int main()
{
int start=0;
cout<<"請輸入數:";
cin>>start;
cout<<print(start,1)<<endl;
system("pause");
return 0;
}
複製代碼
作者:
湯東緯
時間:
2018-6-9 15:20
#include <cstdlib>
#include <iostream>
using namespace std;
int print(int i,int result)
{
int total=result;
if(i>0)
{
total=total*i;
i--;
return print(i,total);
}
else
{
return total;
}
}
int main()
{
int i=0;
cout<<"您的數是:";
cin>>i;
cout<<print(i,1)<<endl;
system("pause");
return 0;
}
複製代碼
作者:
林峻安
時間:
2018-6-9 15:26
#include<iostream>
#include<cstdlib>
using namespace std;
int print(int i,int result)
{
int totle=result;
if(i>0)
{
totle = totle*i;
i--;
return print(i,totle);
}
else
{return totle;
}
}
int main()
{
int i=0;
cout<<"您的數是:";
cin>>i;
cout<<print(i,1)<<endl;
system("pause");
return 0;
}
複製代碼
作者:
吳秉翰
時間:
2018-6-9 15:26
#include<iostream>
#include<cstdlib>
using namespace std;
int hie(int root,int result)
{
int total=result;
if(root>0)
{
total=total*root;
root--;
return hie(root,total);
}
else
{
return total;
}
}
int main()
{
int num;
cout<<"輸入要階層的數:"<<endl;
cin>>num;
cout<<num<<"階是"<<hie(num,1)<<endl;
system("pause");
return 0;
}
複製代碼
作者:
黃安立
時間:
2018-6-9 15:28
#include <cstdlib>
#include <iostream>
using namespace std;
int print(int start,int result)
{
int total=result;
if(start>0)
{
total=total*start;
start--;
return print(start,total);
}
else
{
return total;
}
}
int main()
{
int start=0;
cout<<"請輸入數:";
cin>>start;
cout<<print(start,1)<<endl;
system("pause");
return 0;
}
複製代碼
作者:
鄭楀諺
時間:
2018-6-9 15:30
#include <cstdlib>
#include <iostream>
using namespace std;
int print(int first_number,int second_number,int times)
{
int total=0;
cout<<first_number<<endl;
cout<<second_number<<endl;
for(int i=times;i<=times;i++)
{
total=first_number+second_number;
cout<<total<<endl;
first_number=second_number;
second_number=total;
return total;
}
}
int main()
{
int first_number=0;
int second_number=0;
int times=0;
cout<<"請輸入第一個數:";
cin>>first_number;
cout<<"請輸入第二個數:";
cin>>second_number;
cout<<"請輸入你要的個數:";
cin>>times;
cout<<print(first_number,second_number,times)<<endl;
system("pause");
return 0;
}
複製代碼
作者:
王駿愷
時間:
2018-6-16 14:52
#include<iostream>
#include<cstdlib>
using namespace std;
int total(int a)
{
int res=1;
for(int i=1;i<=a;i++)
{
res*=i;
}
return res;
}
int main()
{
int n=0;
cout<<"請輸入階層數"<<endl;
cin>>n;
cout<<n<<"!="<<total(n)<<endl;
system("pause");
return 0;
}
複製代碼
作者:
戴嘉禾
時間:
2018-6-23 14:27
本帖最後由 戴嘉禾 於 2018-6-23 14:31 編輯
#include <cstdlib>
#include <iostream>
using namespace std;
int print(int num,int result)
{
int total=result;
if(num>0)
{
total*=num;
num--;
return print(num,total);
}
else
{
return total;
}
}
int main()
{
int num=0;
cout<<"請輸入數:";
cin>>num;
cout<<print(num,1)<<endl;
system("pause");
return 0;
}
複製代碼
作者:
林峻安
時間:
2018-7-2 20:16
#include<iostream>
#include<cstdlib>
using namespace std;
int f(int n)
{
if(n==1)
return 1;
else
return n*f(n-1);
}
int main()
{
int w;
cout<<"接成運算";
cin>>w;
cout<<f(w)<<"!"<<endl;
system("pause");
return 0;
}
複製代碼
作者:
顏詢
時間:
2018-7-21 11:31
#include <cstdlib>
#include <iostream>
using namespace std;
int print(int start,int result)
{
int total=result;
if(start>0)
{
total=total*start;
start--;
return print(start,total);
}
else
{
return total;
}
}
int main()
{
int start=0;
cout<<"請輸入數:";
cin>>start;
cout<<print(start,1)<<endl;
system("pause");
return 0;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2