C++编程:从键盘输入一个正整数n,编程计算n!

来源:百度知道 编辑:UC知道 时间:2024/05/04 04:28:41

容我说句实话,楼上两位的代码只能算比较小的阶乘,比如 100! 就算不出了。
我是用数组来实现大数的阶乘,代码如下:

#include<iostream>
#include<deque> // 利用双端队列保存计算结果的每一位
using namespace std;

int main()
{
deque<int> a;
a.push_back(1);
a.push_back(1);
int n,top = 1;
cout << "Input n: ";
cin >> n;
for(int i = 1; i <= n; i++)
{
for(int j=1; j <= top;j++)
a[j] *= i;
for(int j = 1; j <= top; j++)
{
if(a[j]>10)
{
for(int r = 1; r <= top; r++)
{
int tmp = a[r] / 10;
a[r] = a[r] % 10;
if(r+1 == a.size())
{
if(tmp == 0)
break;
else
{
a.push_back(tmp);
top++;
break;
}
}
a[r+1] += tmp;
}
}
}
}

一个c语言编程问题:求s=1/2-2/3+3/5-5/8+.....相加的项数n从键盘输入 C 编程 从键盘输入三个数 求这三个数的阶乘和 用C语言编程做:用从键盘输入3个数,编程实现3个数的比较,输出其中的最大值 请教c语言编程:从键盘输入一批数据,以0结束输入,统计其中的正数和负数的个数 c语言编程的题 “从键盘输入3个数,使其按从小到大的顺序排列输出。” 感谢各位帮忙! 用c程编写一个程序 可以从键盘输入一个公式,回车后得到结果 编写一个C程序,判断从键盘输入的一个数M是否是素数。 用C语言编写一个程序,从键盘输入一个正整数,输出这个整数的所有因子 从键盘输入10个正实数,求其平方根的和 谁帮我编一个从键盘输入100个数,从小到大输出的C程序?越快越好