當前位置:首頁 » 編程軟體 » 編程求n

編程求n

發布時間: 2022-05-18 02:50:01

編程實現,要求:求n!用函數實現,n由主函數輸入。

//注意,限於整型數據的數據范圍,所以實際上這個程序只能求n<=12的情況。如果想求更大的,必須為這個階乘自定義一個數據類型。
#include
using
namespace
std;
int
fact(int
n);
int
main()
{
int
n;
cout<<"求n!,請輸入n:\n";
cin>>n;
cout<
return
0;
}
//下面是使用遞歸函數求n!
int
fact(int
n)
{
if(n==1)
return(1);
else
return(fact(n-1)*n);
}

⑵ 如何用C++編寫程序計算n!

#include"iostream.h"
#include"math.h"
#include"stdlib.h"
#include"iomanip.h"

int getn()
{
int n;
cout<<"請輸入N!中的N\n";
cin>>n;
while(n<0)
{
cout<<"輸入有錯!請重新輸入!"<<endl;
cin>>n;
}
if(n==0)
exit(1);
return n;
}

int getbitnum(int n)
{
double sum=1.0;
for(int i=1;i<n;i++)
sum+=log10(i);
return (int)sum;
}

char * init(int size)
{
char *pa=new char[size];
if(!pa)
{
cout<<"too large factor of"<<size<<endl;
exit(1);
}
pa[0]=1;
for(int i=1;i<size;i++)
pa[i]=0;
return pa;

}

void calc(char *a,int n)
{
double bitcount=1;
int begin=0;
for(int i=2;i<=n;i++)
{
long and=0;
bitcount+=log10(i);
if(a[begin]==0)
begin++;

for(int j=begin;j<int(bitcount);j++)
{
and+=i*a[j];
a[j]=char(and%10);
and/=10;
}
}
}

void display(char *a,int size)
{
int bit=0;
for(int i=size-1;i>=0;i--)
{
if(bit%60==0)
cout<<endl<<"第"<<setw(3)<<(bit/50+1)<<"個50位:";
cout<<(int)a[i];
bit++;
}
cout<<endl;
}

void main()
{
int n=getn();
int size=getbitnum(n);
char *pa=init(size);
calc(pa,n);
display(pa,size);
delete []pa;
}
樓上的幾位代碼沒有錯誤,我贊同。但是只能算一些n比較小的階乘,遇到數字大的就會溢出。樓主可以試試1000的階乘。我的這個可以算大一點的數

c語言編程 輸入N 求N的階乘

輸入一個正整數n,輸出n!*/#include <stdio.h> //編譯預處理命令

int factorial(int n); //函數聲明

int main(int argc, char const *argv[]) //主函數

{

int n; //變數定義

scanf("%d", &n); //輸入一個整數

printf("%d ", factorial(n)); //調用函數計算階乘

return 0;
}int factorial(int n) //定義計算n!的函數

{

int fact = 1;

for (int i = 1; i <= n; ++i)

{

fact = fact*i;

}

return fact;

}

拓展資料

特點

1. C語言是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。

2.C語言是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。

3.C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大。

4. C語言適用范圍大。適合於多種操作系統,如Windows、DOS、UNIX、LINUX等等;也適用於多種機型。C語言對編寫需要硬體進行操作的場合,明顯優於其它高級語言,有一些大型應用軟體也是用C語言編寫的。

⑷ 用C編寫程序 求n的值

#include "stdio.h"
void main()
{
int n=0,sum=0;
while(sum<=1000)//判斷其和是否小於1000,小於就繼續加
{
n++;
sum=sum+(n*10+2);//表達式繼續求和
}
printf("n的值為:");
printf("%d",n);//列印出n值
}
列印的數據是n=14;
正是一樓兄弟的解法

⑸ 用C語言編程:編寫一個函數,求n!

#include <stdio.h>
main()
{
int i,n,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{s*=i;
}
printf("%d!=%d\n",n,s);
}

⑹ 用c語言 編程求N!(n值從鍵盤輸入) 菜鳥求助大俠,在此先謝過。。答案要准確喲

#include <stdio.h>
void main()
{
int n,totol=1,i;
scanf("%d",&n);
for (i=1;i<=n;i++)
totol*=i;
printf("%d\n",totol);
}

⑺ C語言編程求n! (設 n=6 ) , 並計算結果。

//此程序只是適用於一定范圍內的自然數,超過范圍的屬於大數階乘,樓主有興趣可以去研究一下
#include
<stdio.h>
int
main()
{
int
i,n,result;
printf("請輸入一個自然數:\n");
while(scanf("%d",&n)==1)
{
result
=
1;
//此處包含了0的階乘值為1
的考慮
for(i=1;i<=n;i++)
{
result
*=
i;//計算階乘
}
printf("%d!=%d\n",n,result);
printf("請輸入下一個需要計算的自然數,結束請按Ctrl
+
C!\n");
}
return
0;
}

⑻ C語言編程:寫一個求n!的函數

#include<stdio.h>
intfactn(intn)//求n!
{
inti,f=1;
for(i=1;i<=n;i++)
f=f*i;
returnf;
}
intmain()
{
intx,y,sum;
printf("請輸入x,y:");
scanf("%d,%d",&x,&y);
sum=factn(x)+factn(y);
printf("%d!+%d!=%d ",x,y,sum);
return0;
}

⑼ c++編程題 編寫函數實現求n!,主程序要求輸入n的值,用函數調用的方式求n!的值

限於整型數據的數據范圍,所以實際上這個程序只能求n<=12的情況。如果想求更大的,必須為這個階乘自定義一個數據類型。

#include<iostream> using namespace std;

int fact(int n); int main(){

int n; cout<<"求n!,請輸入n: ";

cin>>n; cout<<fact(n)<<endl;

return 0;}

//下面是使用遞歸函數求n!

int fact(int n){ if(n==1) return(1);

else return(fact(n-1)*n)}

(9)編程求n擴展閱讀

一個簡單的c++編程例子:

定義一個圓錐體類(yzt),數據成員有半徑r,高h,成員函數有:構造函數、求圓錐體體積的valume(),顯示函數display(),在main()中定義yzt 的對象s,求r=h=1時的體積,公式:π/3rrh

#include <iostream>using namespace std;//定義標准命名空間

class yzt //定義yzt類{

private:double r,h;

public:yzt(double x=0,double y=0)// 為yzt的構造函數,功能是為r,h賦值

{ r=x;h=y; }double valume()//求圓錐體的體積函數

{ double v=0;v=(3.1415/3)*r*r*h;

return v; }void display() //圓錐體的體積顯示函數

{cout<<"圓錐體的體積為:"<<valume()<<endl;}

};int main() //主函數,任何程序都必須有一個main()函數,因為要從它開始執行

{

yzt s(1,1); //定義yzt的對象s.display(); //利用對象s調用yzt的display()函數

return 0;

⑽ c語言 編程實現求n!要求用定義求階乘的函數

1、打開vs2017軟體,新建c語言的工程,首先開頭引入頭文件,然後調用先調用一下求階乘的函數和空的主函數,最下方定義prime函數用來求階乘:

熱點內容
動圖在線壓縮 發布:2025-05-14 03:35:24 瀏覽:131
w7共享無法訪問 發布:2025-05-14 03:35:24 瀏覽:481
為什麼微信會出現賬號密碼錯誤 發布:2025-05-14 03:03:30 瀏覽:692
幻影腳本官網 發布:2025-05-14 03:01:13 瀏覽:826
servlet的webxml怎麼配置 發布:2025-05-14 02:51:46 瀏覽:772
怎麼取消手勢密碼 發布:2025-05-14 02:51:11 瀏覽:639
openvpn搭建vpn伺服器搭建 發布:2025-05-14 02:47:52 瀏覽:998
密碼忘了從哪裡找 發布:2025-05-14 02:39:09 瀏覽:548
我的世界什麼伺服器有前途 發布:2025-05-14 02:30:31 瀏覽:528
java程序反編譯 發布:2025-05-14 02:18:46 瀏覽:458