题解 UVA575 【Skew Binary】
一道UVA,我发现UVA在洛谷不太火爆,于是来水一篇
这道题目,我们可以用简单的字符串模拟来做,实在是“太水了”,QAQ。关键就是要把题目读懂!
按照题目意思,就是一道“位值问题”,每一位上的值都有不同的比重。每一位上的比重,就是数值*(2^位置-1)。
那么,考虑公式,简单易懂的小段代码。
int t=(int)(s[i]-'0'); int w=len-i; sum+=t*(pow(2,w)-1);
有没有问题?!
那么如果没有问题,我们就解决了问题的核心。
上代码!!!
#include<bits/stdc++.h> using namespace std; int main() { string s; while(cin>>s) { if(s=="0") { break; } int len; len=s.size(); int i; int sum=0; for(i=0;i<len;i++) { if(s[i]!='0') { int t=(int)(s[i]-'0'); int w=len-i; sum+=t*(pow(2,w)-1); } } cout<<sum<<endl; } return 0; }
(题目太水,实在没什么可说的……QAQ)
不要妄图追上西坠的太阳,而是要在黎明前就等着它!