题目:



分析:

这道题目要求的是n!的位数,显然一种思路是先求出n!的值,假定为res,然后再计算res的位数,这种方法在n比较小时是可以的,如果res为int型,一旦n>16,res就会超出int范围,如果为double型,当n>170时也会出错,而此题的n最大可以为25000,显然没办法先求出res。当然,如果通过数组去模拟,也是可以的,但是对于此题来说太过麻烦,所以换种思路来做。如果是要求n!的值,那就只能通过数组去模拟了,但是我们现在只要求n!的位数即可,那么就可以边算阶乘,边算位数。我们都知道,要计算一个数的位数,只要把这个数一直除以10,用一个计数器就可以了。这里也一样,可以把每一次res都除以10,直到它比10小为止,每除一次,就把计数器加一。由于res的最后几位小数在double范围内并不会对位数造成影响,所以此法可行。



代码:

#include<iostream>
using namespace std; int main()
{
int n,i;
double res=1;
int count=1; cin>>n; for(i=2;i<=n;i++)
{
res*=i; //计算阶乘 while(res>=10) //计算位数
{
res/=10;
count++;
}
} cout<<count<<endl; return 0;
}


单身狗进化——求n!的位数的更多相关文章

  1. ZZNUOJ-2154:单身狗线下聚会【求N个数的最小公倍数,会超longlong,大数乘法,Java】

    2154: 单身狗线下聚会 题目描述 马上就到七夕节了,单身狗们决定聚一聚.但是它们沉迷B站上的lo娘,他们每沉迷 ai 单身狗时间(这是它们专业计时)后就会休息 单身狗时间.它们想找到一个时间正好他 ...

  2. 《Java从入门到放弃》JavaSE篇:综合练习——单身狗租赁系统(数组版)

    因为现在只学习了基本语法,所以在综合练习之前,先补充关于方法概念. 方法的作用:把一系列的代码放在一起,然后再取个别名.之后通过这个别名的调用,就相当于执行了这一系列的代码. 方法的语法:([]中的内 ...

  3. 江西理工大学南昌校区排名赛 D: 单身狗的物理游戏

    题目描述 萌樱花是一只单身狗. 萌樱花今天决定做一道理综物理题: 如图,两固定的绝缘斜面倾角均为θ,上沿相连.两细金属棒ab(仅标出a端)和cd(仅标出c端)长度均为L,质量分别为2m和m:用两根不可 ...

  4. PAT1065 单身狗 (25分) 思路记录——参考大神柳婼

    1065 单身狗 (25分)   “单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000), ...

  5. phpwamp单身狗模式的详解与分析,单身狗模式/即霸体模式的作用讲解。

    最近有学生在使用PHPWAMP的时候,问我霸体模式的作用. 学生问:老师,PHPWAMP里面的霸体模式是什么意思,有什么用? 回答:额...就是以前我发布测试版的时候,模式切换里面的单身狗模式. 学生 ...

  6. PAT乙级 1065. 单身狗(25) by Python

    1065. 单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对 ...

  7. 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统

    今天,我们要玩个大的!!! 我们把之前使用数组做的这个单身狗系统改版成数据库版本,并且使用面向对象里面的一些简单思想.如果有不知道这个系统的看官,请跳转到目录页,然后再选择单身狗系统(数组版)先围观五 ...

  8. 求N!的位数

    #include<iostream> #include <cstdio> #include <cmath> using namespace std; const d ...

  9. PAT Basic 1065 单身狗

    单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对于单身人士的 ...

随机推荐

  1. Spring Assert(方法入参检测工具类-断言)

    Web 应用在接受表单提交的数据后都需要对其进行合法性检查,如果表单数据不合法,请求将被驳回.类似的,当我们在编写类的方法时,也常常需要对方法入参进行合 法性检查,如果入参不符合要求,方法将通过抛出异 ...

  2. Android ftp 上传图片

    1.确定ftp文件夹 /** FTP文件夹 **/ private String ftpPath = "hshscrenncap" + "/" + DateUt ...

  3. jS事件:target与currentTarget区别

    target在事件流的目标阶段:currentTarget在事件流的捕获,目标及冒泡阶段.只有当事件流处在目标阶段的时候,两个的指向才是一样的, 而当处于捕获和冒泡阶段的时候,target指向被单击的 ...

  4. UIView常见属性总结

    一 UIVIew 常见属性 .frame 位置和尺寸(以父控件的左上角为原点(,)) .center 中点 (以父控件的左上角为原点(,)) .bounds 位置和尺寸(以自己的左上角为原点 (,)) ...

  5. (转)如何将数据库从SQL Server迁移到MySQL

    一.迁移Database Schema. 首 先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型.具体操作是在Powerdesigner中选择“F ...

  6. Node.js执行存储过程

    直接上代码 var sql = require('mssql'); var config = {     user: 'sa',     password: '123456',     server: ...

  7. [LintCode] Flatten Binary Tree to Linked List 将二叉树展开成链表

    Flatten a binary tree to a fake "linked list" in pre-order traversal. Here we use the righ ...

  8. Many2one类型的fields Compute得到的值 搜索

    v8 默认情况下compute的值不存储于数据库中,在高级搜索中也不可以进行搜索 想要对这种类型的值搜索,需要在field的定义中添加search参数,在search的函数中编写搜索逻辑. 例子: r ...

  9. JAVA中序列化和反序列化

    一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失(java回收机制)但如果我们想把某些对象(因为是对象,所以有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运 ...

  10. js变量

    由于undefined和null两个值的比较是相等的,所以,未初始化的变量和赋值为null的变量会相等.这时,可以采用typeof变量的类型进行比较.但,建议还是养成编码的规范,不要忘记初始化变量. ...