阶乘非零末尾

问题概括

给定一个数,让你求出这个数阶乘的非零末位。

解题思路

1求出阶乘的结果
2将结果末尾的0去掉(因为对结果无影响,且方便计算)
3取出非零结果的末几位(加大运算范围)
4输出结果

程序代码

#include<iostream>
using namespace std;//使用namespace
int a,c,i;//设置变量a,c,i
int main()//主函数的起始
{
    cin>>a;//输入变量a(为题目中给定的的数)
    i=1;//先将循环变量i设为1
    c=1;//将变量c初始值设为1(用于存储阶乘的结果)
    for(i=1;i<=a;i++)//当循环变量i小于等于变量a时,执行下方语句,每次将变量i加1(即从1循环到a的所有数)
    {
        c=c*i%1000000;//将变量c乘变量i取末7位,完成阶乘运算且控制了数值大小
        while(c%10==0)//在每次运算中,看看末位是否为0,若为0,执行循环体(为了去除末尾所有的0
        {
            c=c/10;//每次将末位的0去掉,直到末尾非0
        }
    }
    cout<<c%10<<endl;//输出变量c的末位即为结果
    return 0;//结束主函数的运行
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值