Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
21220 | 周景轩 | 印度国王的棋盘 | C++ | 通过 | 100 | 0 MS | 264 KB | 727 | 2021-06-26 20:08:27 |
#include<bits/stdc++.h> using namespace std; // 高精度加法运算 string add(string a1,string a2){ // a1:"00512" a2:"23129" int si=max(a1.size(),a2.size()),y=0,r; while(a1.size()<si) a1="0"+a1; while(a2.size()<si) a2="0"+a2; for(int i=a1.size()-1;i>=0;i--){ r=a1[i]-'0'+a2[i]-'0'+y; a1[i]=r%10+'0'; y=r/10; } if(y==1) a1="1"+a1; return a1; } // 求2的n次幂的值 n>=0 string p2(int n){ string r="1"; while(n--){ r=add(r,r); } return r; } int k,m; string ans="0"; int main(){ scanf("%d,%d",&k,&m); for(int i=k;i<=m;i++){ ans=add(ans,p2(i-1)); } if(ans.size()>=6){ cout<<ans.substr(0,3)<<","<<ans.substr(ans.size()-3); }else{ cout<<ans; } return 0; }