当前位置:网站首页>Haut OJ 1245: large factorial of CDs --- high precision factorial
Haut OJ 1245: large factorial of CDs --- high precision factorial
2022-07-05 05:17:00 【hunziHang】
Problem description :
cds: I heard that you can already use C Language seeking n! 了
ykc: Of course ! Light yard oj I have already solved all the factorial problems AC 了 , for example 1048 Factorial table ,1050 The cumulative sum of factorials ,1089 The highest position of factorial, etc ……
cds: Oh ? Really? , Then I'll give you a number n, Can you find its factorial immediately ?
ykc: good , That's all right. !
cds: can n Very big
ykc: Don't worry , I use long long Just fine
cds: Good. ,n=80
ykc:&#¥%#woc
Input :
Single instance test , Enter a natural number n(n<=2000)
Output :
Output n The factorial
The sample input :
80
Sample output :
71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000
Cause analysis :
1. utilize i To achieve 1 To n The factorial ,temp Record the number obtained by multiplying each time ,digit Record the number of digits ( So that each number can be multiplied )
2. temp=a[j]*i+num; num It is a number on a bit that multiplies and advances backward (num=temp/10;) The number on the bit that should be carried * i after , Need to add low and progressive num.
3. hold num/10 such as 4 The factorial And finally 4*(2*3), namely 24, here num=2 Save to digit That is to say 1 Location
Build another while Yes, it will appear later num There are several , So use a cycle to save each .
Solution :
#include <stdio.h>
int main()
{
int a[20001];// Store the number obtained by each bit
int temp,digit,n,i,j=0;//temp The number of each time digit The number of digits each time
scanf("%d",&n);
a[0]=1;// from 1 Start to multiply
digit=1;// The number of digits starts from the first
for(i=2;i<=n;i++)
{
int num=0;
for(j=0;j<digit;j++) //for Purpose : Multiply each digit of a number by i,
{
temp=a[j]*i+num;
a[j]=temp%10; // Each digit of a number is stored in an array
num=temp/10;
}
while(num)
{
a[digit]=num%10; // Continue to store the number after the last carry
// The previous carry is in the second for Stored in
num=num/10;
digit++;
}
}
for(i=digit-1;i>=0;i--)// Output each bit in reverse order
printf("%d",a[i]);
printf("\n");
return 0;
}
Multi instance input :
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll i,j,n;
while(cin>>n)
{
ll digit=1,a[100000]; //a Array ,a[0]=1,digit Need to put it in .
a[0]=1;
for(j=2;j<=n;j++)
{
ll num=0,temp;
for(i=0;i<digit;i++)
{
temp=a[i]*j+num;
a[i]=temp%10;
num=temp/10;
}
while(num)
{
a[digit]=num%10;
num/=10;
digit++;
}
}
for(i=digit-1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
}
边栏推荐
- Do a small pressure test with JMeter tool
- The difference between heap and stack
- 一个新的微型ORM开源框架
- [allocation problem] 135 Distribute candy
- Unity connects to the database
- PMP candidates, please check the precautions for PMP examination in July
- Basic knowledge points
- Pause and resume of cocos2dx Lua scenario
- C # perspective following
- Embedded database development programming (VI) -- C API
猜你喜欢
2022年上半年国家教师资格证考试
Romance of programmers on Valentine's Day
[转]MySQL操作实战(三):表联结
TF-A中的工具介绍
[轉]: OSGI規範 深入淺出
2022/7/2 question summary
To the distance we have been looking for -- film review of "flying house journey"
LeetCode之單詞搜索(回溯法求解)
Research on the value of background repeat of background tiling
服务熔断 Hystrix
随机推荐
Unity sends messages and blocks indecent words
Listview is added and deleted at the index
Ue4/ue5 illusory engine, material part (III), material optimization at different distances
Common database statements in unity
Reverse one-way linked list of interview questions
Learning notes of "hands on learning in depth"
[trans]: spécification osgi
GameObject class and transform class of unity
FVP和Juno平台的Memory Layout介绍
Programmers' experience of delivering takeout
[merge array] 88 merge two ordered arrays
To the distance we have been looking for -- film review of "flying house journey"
room数据库的使用
Unity shot tracking object
《动手学深度学习》学习笔记
Django reports an error when connecting to the database. What is the reason
Merge sort
SDEI初探-透过事务看本质
Solon Logging 插件的添加器级别控制和日志器的级别控制
[binary search] 34 Find the first and last positions of elements in a sorted array