pku 1423 阶乘 Big Number 解题报告
2009-02-22 13:44
459 查看
一、题目:Big Number
二、题意:求数a的阶乘的位数。
三、解决办法:
此题的解决办法不难,但却有一种很好的算法思想在里面,故我需要对此做出自己的总结!
此题算属于高精度问题!我发现凡是遇到高精度的问题,其中最重要的思想在于将数值统统放到大数组上,还有一种算法思想,同时也是此题的的解法!即在计算的过程中,不断的对数值进行记录,而且还不断对其数值进行缩小!
四、源代码:
#include "stdio.h"
int main()
{
freopen("1.txt", "r", stdin);
int t;
int n;
int i;
int digit;
double num;
if (scanf("%d",&t))
{
while (t--)
{
scanf("%d",&n);
digit = 1;
num = 1;
for (i = 2; i <= n; i++)
{
num *= i;
if (num < 10)
{
continue;
}
if (num < 100)
{
digit += 1;
num /= 10;
continue;
}
if (num < 1000)
{
digit += 2;
num /= 100;
continue;
}
if (num < 10000)
{
digit += 3;
num /= 1000;
continue;
}
if (num < 100000)
{
digit += 4;
num /= 10000;
continue;
}
if (num < 1000000)
{
digit += 5;
num /= 100000;
continue;
}
if (num < 10000000)
{
digit += 6;
num /= 1000000;
continue;
}
if (num < 100000000)
{
digit += 7;
num /= 10000000;
continue;
}
}
printf("%d/n",digit);
}
}
return 0;
}
二、题意:求数a的阶乘的位数。
三、解决办法:
此题的解决办法不难,但却有一种很好的算法思想在里面,故我需要对此做出自己的总结!
此题算属于高精度问题!我发现凡是遇到高精度的问题,其中最重要的思想在于将数值统统放到大数组上,还有一种算法思想,同时也是此题的的解法!即在计算的过程中,不断的对数值进行记录,而且还不断对其数值进行缩小!
四、源代码:
#include "stdio.h"
int main()
{
freopen("1.txt", "r", stdin);
int t;
int n;
int i;
int digit;
double num;
if (scanf("%d",&t))
{
while (t--)
{
scanf("%d",&n);
digit = 1;
num = 1;
for (i = 2; i <= n; i++)
{
num *= i;
if (num < 10)
{
continue;
}
if (num < 100)
{
digit += 1;
num /= 10;
continue;
}
if (num < 1000)
{
digit += 2;
num /= 100;
continue;
}
if (num < 10000)
{
digit += 3;
num /= 1000;
continue;
}
if (num < 100000)
{
digit += 4;
num /= 10000;
continue;
}
if (num < 1000000)
{
digit += 5;
num /= 100000;
continue;
}
if (num < 10000000)
{
digit += 6;
num /= 1000000;
continue;
}
if (num < 100000000)
{
digit += 7;
num /= 10000000;
continue;
}
}
printf("%d/n",digit);
}
}
return 0;
}
相关文章推荐
- Pku acm 1423 Big Number 解题报告----求n!的位数
- POJ 1423 Big Number 解题报告
- 求大数的阶乘的位数:PKU :1423:Big Number
- pku 1163 dp TheTriangle 解题报告
- Pku acm 2075 Tangled in Cables数据结构题目解题报告(十一)最小生成树:prim算法&amp;amp;二叉查找树
- pku 3440 几何概论 Coin Toss 解题报告
- pku 树形DP 1848 Tree 解题报告
- poj1423解题报告
- pku 1164 the castle 深度搜索 解题报告
- pku 1521 赫夫曼编码 Entropy 解题报告
- pku 1141 Bracket Sequence DP 解题报告
- pku 1961 KMP period 解题报告
- 解题报告BLOG开启。。第一题 PKU1922 Ride to School
- Pku acm 2250 Compromise 动态规划题目解题报告(六)
- Pku acm 2533 Longest Ordered Subsequence 动态规划题目解题报告(十二)
- Pku acm 1014 Dividing 动态规划题目解题报告(十七)
- Pku acm 1125 Stockbroker Grapevine 动态规划题目解题报告(十九)
- Pku acm 2299 Ultra-QuickSort 排序算法解题报告(四)----归并排序(MegerSort)求逆序数
- PKU 3617 Best Cow Line和PKU 3623 Best Cow Line 解题报告
- PKU 1086解题报告