c++ 相邻数字不等比skew数
2013-07-18 16:54
267 查看
在 skew binary表示中, 第 k 位的值xk表示xk*(2k+1-1)。 每个位上的可能数字是0 或 1,最后面一个非零位可以是2, 例如, 10120(skew) = 1*(25-1) + 0*(24-1) + 1*(23-1) + 2*(22-1) + 0*(21-1) = 31 + 0 + 7 + 6 + 0 = 44.
前十个skew数是 0、1、2、10、11、12、20、100、101、以及102。 输入 输入包含一行或多行,每行包含一个整数n。 如果 n = 0 表示输入结束,否则n是一个skew 数 输出 对于每一个输入,输出它的十进制表示。转换成十进制后, n 不超过 231-1 = 2147483647 样例输入
样例输出
[/code]
前十个skew数是 0、1、2、10、11、12、20、100、101、以及102。 输入 输入包含一行或多行,每行包含一个整数n。 如果 n = 0 表示输入结束,否则n是一个skew 数 输出 对于每一个输入,输出它的十进制表示。转换成十进制后, n 不超过 231-1 = 2147483647 样例输入
10120 200000000000000000000000000000 10 1000000000000000000000000000000 11 100 11111000001110000101101102000 0
样例输出
44 2147483646 3 2147483647 4 7 1041110737
[code]#include <iostream> #include <string> using namespace std; int main() { int base[32],i,sum; char s[32]; base[0]=1; for(i=1;i<31;i++) base[i]=2*base[i-1]+1; while(1) { gets(s); if(s[0]=='0') break; sum=0; int l=strlen(s); for(i=0;i<strlen(s);i++) { l--; sum+=(s[i]-'0')*base[l]; } cout<<sum<<endl; } return 0; }
[/code]
相关文章推荐
- 相邻数字的基数不等比:skew数
- 相邻数字的基数不等比:skew 数
- 相邻数字的基数等比确定进制问题pojg2972
- 相邻数字的基数等比:确定进制
- 【C++学习】vector的使用,输入一串数字,输出相邻和---ShinePans
- 找出一串数字中,n个连续的数之和最大c++代码实例及运行结果
- 1019. 数字黑洞 (20)(C++)
- java练习:打印 数字1、2、3、4的组合,不能以4开头,1和3不能相邻,且数字不能重复
- 数字螺旋方阵C++实现
- C++检测数字是否为素数(质数)
- C++ 字符串转化为数组 有负数 数字之间为空格间隔
- C/C++中字符串与数字之间的转换
- C#正则表达式基础 {3,} 检测字符串是否存在 3个以上 相邻的数字
- C++获取数字证书的序列号
- c/c++ 数字转成字符串, 字符串转成数字
- 面试题七 C/C++ 两个字符串由数字组成的相加,最大不超过32bit整形的系统函数--程序员面试题
- OJ3RD 1157 合并相邻数字 - DP
- uva 10327 相邻数字交换排序法
- C++对带有分隔符的字符串 分割为数字的通用解决方案
- c++中数字字符串的转换