編程求n
⑴ 編程實現,要求:求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函數用來求階乘: