题解 | #Skew数#

Skew数

http://www.nowcoder.com/practice/7b6586ac8f614aafbe2e0896e82ac0c1

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;

//返回2的i次方
int pow(int i) {
	int res = 1;
	while (i != 0) {
		res *= 2;
		i--;
	}
	return res;
}
int skew(string s) {
	int res = 0;
	reverse(s.begin(), s.end());
	for (int i = 0; i < s.size(); i++) {
		res += (s[i]-'0') * (pow(i + 1) - 1);
	}
	return res;
}
int main() {
	//cout << pow(10) << endl;
	string s;
	while (cin >> s) {
		if (s == "0")break;
		cout << skew(s) << endl;
	}
	return 0;
}
全部评论

相关推荐

认真搞学习:这么良心的老板真少见
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 11:35
程序员小白条:话太多,没实力和学历,差不多回答回答就行了,身份地位不一样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务