关于c++编程

yiyu2232 2014-01-03 05:08:33

问:用最简单的c++语言程序编写一个程序达到上述效果,尽量不用面向对象的c++语言。。。
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2014-01-05
  • 打赏
  • 举报
回复
估计可以用 long long 计算出来
cheney1227 2014-01-05
  • 打赏
  • 举报
回复
什么效果??
sleeplacker 2014-01-05
  • 打赏
  • 举报
回复
改变MAX的值你可以改变输出数的位数的上限
#include <iostream>
#include<iomanip>
#define Max 10000
int deep = 0;//进位深度
void Funciton(int n, int array[], int i, int j);
void Carrybit(int n, int array[], int i, int j)
{
	if (j + 1 == Max)
	{
		std::cout << "Error" << std::endl;
		return;
	}
	if (array[j + 1] != -1)
	{
		Funciton(n, array, i, j + 1);
		array[j + 1] += array[j] / 10;
		if (array[j + 1] >= 10)
		{
			Carrybit(n, array, i, j + 1);
		}
	}
	else
	{
		array[j + 1] = array[j] / 10;
	}
	array[j] %= 10;
	deep++;
}
void Funciton(int n, int array[], int i, int j)
{
	if (deep>0)
	{
		deep--;
		return;
	}
	else if (array[j] == -1)
	{
		return;
	}
	array[j] *= i;
	if (array[j] >= 10)
	{
		Carrybit(n, array, i, j);
	}
}
int main()
{
	int n;
	std::cout << "Enter the number n:";
	std::cin >> n;
	if (n <= 0)
	{
		std::cout << "n must > 0" << std::endl;
	}
	for (int num = 1; num <= n; ++num)
	{
		int i, j;
		int array[Max] = { 1 };//保存每一位的数字,最多Max位
		for (j = 1; j<Max; j++)
		{
			array[j] = -1;
		}
		for (i = 1; i <= num; i++)
		{
			for (j = 0; j<Max; j++)
			{
				Funciton(num, array, i, j);
			}
		}
		std::cout << std::right <<  std::setw(4) << num << "! = ";
		for (j = Max - 1; j >= 0; j--)
		{
			if (array[j] != -1) 
				std::cout << array[j];
		}
		std::cout << std::endl;
	}
	return 0;
}
qq120848369 2014-01-05
  • 打赏
  • 举报
回复
使用GMP。
图灵狗 2014-01-05
  • 打赏
  • 举报
回复
大数运算参考http://blog.csdn.net/turingo/article/details/8249799
引用 楼主 u013369852 的回复:
问:用最简单的c++语言程序编写一个程序达到上述效果,尽量不用面向对象的c++语言。。。
流浪若相惜 2014-01-05
  • 打赏
  • 举报
回复
得定义大数。。。。。
yiyu2232 2014-01-03
  • 打赏
  • 举报
回复
会发生溢出呀。可以大概的写下吗?
陆小路 2014-01-03
  • 打赏
  • 举报
回复
double Calculate(int n) { if ( 1 == n) { return 1; } else { return n * Calculate(n-1); } }
Sharing_Li 2014-01-03
  • 打赏
  • 举报
回复
大数阶乘问题,可使用数组实现

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧