没有合适的资源?快使用搜索试试~ 我知道了~
用数据解决乘积超出数据的最大范围,此为100的阶乘,同理更大数的阶乘以此类推!
资源推荐
资源详情
资源评论
/*************************************
计算100的阶乘,并输出乘积末位有多少连续的零(非数学方法)。
*************************************/
#include <stdio.h>
#include <stdlib.h>
#define SLEN 201 //存放乘积的数组长度
#define LEN 100 //表示100的阶乘
int main()
{
int i,j,k,g; //数组临时变量
int a[2][SLEN]; //a[0]存放乘积数,a[1]暂存进位数值
for(i=0;i<SLEN;i++) //数组赋空值
{
a[0][i]=0;
a[1][i]=0;
}
a[0][SLEN-1]=1; //初始乘数为1
for(i=2;i<=LEN;i++)
{for(j=SLEN-1;j>=0;j--)
{
a[0][j]=a[0][j]*i;
if(a[0][j]>=10 && a[0][j]<100) //判断产生一位进位,赋值到对应的前一位
{
a[1][j-1]=a[1][j-1]+a[0][j]/10;
a[0][j]=a[0][j]%10;
}
if(a[0][j]>=100) //判断产生两位进位,赋值到对应的前一位和前两位
{
计算100的阶乘,并输出乘积末位有多少连续的零(非数学方法)。
*************************************/
#include <stdio.h>
#include <stdlib.h>
#define SLEN 201 //存放乘积的数组长度
#define LEN 100 //表示100的阶乘
int main()
{
int i,j,k,g; //数组临时变量
int a[2][SLEN]; //a[0]存放乘积数,a[1]暂存进位数值
for(i=0;i<SLEN;i++) //数组赋空值
{
a[0][i]=0;
a[1][i]=0;
}
a[0][SLEN-1]=1; //初始乘数为1
for(i=2;i<=LEN;i++)
{for(j=SLEN-1;j>=0;j--)
{
a[0][j]=a[0][j]*i;
if(a[0][j]>=10 && a[0][j]<100) //判断产生一位进位,赋值到对应的前一位
{
a[1][j-1]=a[1][j-1]+a[0][j]/10;
a[0][j]=a[0][j]%10;
}
if(a[0][j]>=100) //判断产生两位进位,赋值到对应的前一位和前两位
{
资源评论
chenruofeng
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功