POJ 1565大数类似二进制求十进制
发布时间:2020-12-14 04:00:23 所属栏目:大数据 来源:网络整理
导读:题意: 10120(skew) = 1 * (2^5-1) + 0 * (2^4-1) + 1 * (2^3-1) + 2 * (2^2-1) + 0 * (2^1-1)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = 31 + 0 + 7 + 6 + 0? ? ? ??= 44. ? ? ?(令char n[]=10120其中易看出skew=strlen(n)) 思路:按公式求即可。有点求2^n即求2
题意:
10120(skew) = 1 * (2^5-1) + 0 * (2^4-1) + 1 * (2^3-1) + 2 * (2^2-1) + 0 * (2^1-1)?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = 31 + 0 + 7 + 6 + 0? ? ? ??= 44. ? ? ?(令char n[]=10120其中易看出skew=strlen(n)) 思路:按公式求即可。有点求2^n即求2的n次方技巧用移位可快速求出,即:2^n=2<<(n-1) #include <iostream> #include <cstring> using namespace std; int main() { char n[35]; while(cin>>n&&strcmp(n,"0")!=0) { int i,l,m,sum=0; l=m=strlen(n); for(i=0;i<l;i++) { sum+=((2<<(m-1))-1)*(n[i]-'0'); m--; } cout<<sum<<endl; } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |