- C++
01413信奥1330-高精度应用
- 2024-4-13 14:17:27 @
#include<bits/stdc++.h>
using namespace std;
int a[110]={1,0};
int main(){
long long n;
cin>>n;
int len=1;
for(int i=1;i<=n;i++){
for(int j=len-1;j>=0;j--){
a[j]*=2;
if(a[j]>=10){
a[j+1]++;
a[j]%=10;
if(j==len-1)len++;
}
}
}
for(int j=len-1;j>=0;j--)cout<<a[j];
return 0;
}
改进求m的n次方
#include<bits/stdc++.h>
using namespace std;
int a[110]={1,0};
int main(){
long long n,m,tmp=0;
cin>>m>>n;
int len=1;
for(int i=1;i<=n;i++){
for(int j=len-1;j>=0;j--){
a[j]=a[j]*m;
if(a[j]>=10){
tmp = a[j]/10;
a[j+1]+= tmp;
a[j]%=10;
if(j==len-1){
len++;
}
}
}
}
for(int j=len-1;j>=0;j--)cout<<a[j];
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int a[1100000]={1,0};
int main(){
long long n,tmp=0;
cin>>n;
int len=1;
for(int i=1;i<=n;i++){
int tmp =0;
for(int j=0;j<=len-1;j++){
a[j]=a[j]*i+tmp;
if(a[j]>=10){
tmp = a[j]/10;
a[j] %= 10;
if(j==len-1) len++;
}else tmp = 0;
// cout<<a[j]<<endl;
}
// cout<<"****"<<endl;
}
for(int j=len-1;j>=0;j--)cout<<a[j];
return 0;
}
作业:阶乘和
#include<bits/stdc++.h>
using namespace std;
int sum[110];
int main(){
long long n,tmp=0,sum_len=0;
cin>>n;
for(int k=1;k<=n;k++){
int len=1;
int a[110]={1,0};
for(int i=1;i<=k;i++){
int tmp =0;
for(int j=0;j<=len-1;j++){
a[j]=a[j]*i+tmp;
if(a[j]>=10){
tmp = a[j]/10;
a[j] %= 10;
if(j==len-1) len++;
}else tmp = 0;
}
}
tmp = 0;
for(int i=0;i<len||i<sum_len;i++){
sum[i] = sum[i] + a[i]+tmp;
if(sum[i]>=10){
tmp=sum[i]/10;
sum[i]=sum[i]%10;
}else tmp = 0;
if(len>=sum_len&&i==len-1){
if(tmp==1){
sum_len=len+1;
sum[sum_len-1]=tmp;
}else sum_len=len;
}else if(len<=sum_len&&i==sum_len-1){
if(tmp==1){
sum_len=sum_len+1;
sum[sum_len-1]=tmp;
}
}
}
}
for(int j=sum_len-1;j>=0;j--)cout<<sum[j];
return 0;
}
0 条评论
目前还没有评论...