巽诹 2022-05-21 19:47 采纳率: 54.5%
浏览 99
已结题

关于蓝桥杯第十三届java 求阶乘的问题,输出一直是找不到符合条件的数

问题遇到的现象和发生背景

在练习过程中看到了这个

满足 N! 的末尾恰好有 K 个 0 的最小的 N 是多少?

如果这样的 N 不存在输出 −1。

问题相关代码,请勿粘贴截图

#include<stdio.h>
#include<math.h>
int ling(long double g);
int erfen(int m);
int main()
{
int n;
long double q=0;
scanf("%d",&n);
q=erfen(n);
}
int erfen(int m)//通过二分法来寻找尾数中有m个0的数
{
long double r=0,l=pow(10,19),mid,i;
int d;
while(r<l)
{
mid=(r+l)/2;
d=ling(mid);
if (m <= d)
{
l = mid - 1;
}
else if(m>d)
{
r = mid + 1;
}
else
{
r=mid;
}
}
if(ling(r)!=m)
{
printf("-1");
}
else
{
printf("%lf",r);
}
}
int ling(long double g)//求多少个0
{//应该是双精度除法不像整型除法一样导致的结果错误
double long e=0;
while(g!=0)
{
e=e+g/5;//记录有多少个5,一个5即代表一个0
g=g/5;
}
return e;
}

我的解答思路和尝试过的方法

https://blog.csdn.net/qq_53767869/article/details/124480854?ops_request_misc=&request_id=&biz_id=102&utm_term=%E8%93%9D%E6%A1%A5%E5%8D%81%E4%B8%89%E7%9C%81%E8%B5%9Bj&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-124480854.142^v10^pc_search_result_control_group,157^v4^control&spm=1018.2226.3001.4187
上述代码是根据这位up的代码改编的c++版本,感觉他的思路是相当简洁所以想改编试试

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月29日
    • 创建了问题 5月21日

    悬赏问题

    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥15 stable diffusion
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘