| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1229 人关注过本帖
标题:Skew数
只看楼主 加入收藏
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
 问题点数:0 回复次数:15 
Skew数

Skew数

Time Limit:1000MS Memory Limit:32767K
Total Submit:13 Accepted:5

Description

在 skew binary表示中, 第 k 位的值x(k)表示x(k)* 2^(k+1)-1。 每个位上的可能数字是0 或 1,最后面一个非零位可以是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. 前十个skew数是 0, 1, 2, 10, 11, 12, 20, 100, 101, and 102。


Input

输入包含一行或多行,每行包含一个整数n。 如果 n = 0 表示输入结束,否则n是一个skew 数

Output

对于每一个输入,输出它的十进制表示。转换成十进制后, n 不超过 2^31-1 = 2147483647

Sample Input


10120
200000000000000000000000000000
10
1000000000000000000000000000000
11
100
11111000001110000101101102000
0

Sample Output


44
2147483646
3
2147483647
4
7
1041110737

搜索更多相关主题的帖子: Skew 
2007-10-11 21:05
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

简单.
这个是哪里的OJ?


倚天照海花无数,流水高山心自知。
2007-10-11 21:26
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
回复:(nuciewth)简单.[em01]这个是哪里的OJ?
[UserName=nuciewth][/UserName]
#include<stdio.h>
#include<string.h>
int data[33]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,
131071,262143,524287,1048575,2097151,4194303,8388607,16777215,
33554431,67108863,134217727,268435455,536870911,1073741823,2147483647};
int main()
{
char str[32];

while(EOF!=(scanf("%s",str))&&strcmp(str,"0")!=0)
{
long sum=0;
int len=strlen(str);
for(int i=0;i<len;i++)
{
sum+=(str[i]-'0')*data[len-i];
}
printf("%ld\n",sum);
}
return 0;
}

倚天照海花无数,流水高山心自知。
2007-10-11 21:40
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
for(int i=0;i<len;i++)
{
sum+=(str[i]-'0')*data[len-i];
}
printf("%ld\n",sum);

3楼的代码能通过编译吗

[此贴子已经被作者于2007-10-11 21:53:49编辑过]


[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2007-10-11 21:51
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

为什么通不过.
怎么你可以看到,我只给我自己看的

倚天照海花无数,流水高山心自知。
2007-10-11 22:11
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
以下是引用nuciewth在2007-10-11 22:11:06的发言:

为什么通不过.
怎么你可以看到,我只给我自己看的

c语言不能在for里声明变量的
我也不知道咋就看到了- -!


[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2007-10-11 22:14
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
只要编译器通过,我就认为可以.
我比较相信编译器.

倚天照海花无数,流水高山心自知。
2007-10-11 22:18
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
以下是引用nuciewth在2007-10-11 22:18:04的发言:
只要编译器通过,我就认为可以.
我比较相信编译器.

你用的vc吧?
你既然都知道这是个oj题
应该知道用gcc的话是不可能通过编译的
vc能编译是有原因的


[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2007-10-11 22:28
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 
睡觉了
明天还得上班
最后再补充一下
你可以在你的源文件开头加上
#ifdef __cplusplus
extern "C" {
#endif
在源文件结尾加上
#ifdef __cplusplus
}
#endif
再用vc编一次试试能不能成功
我说有原因就是vc是一个c++编译器,所以你的那个能通过编译是因为vc按照c++的语法规则解释的,即使你的源文件名后缀是.c而不是.cpp
而加上我刚才说的那个条件编译命令后
vc会严格按照c的语法来进行编译

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2007-10-11 22:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
我可以说应该可以编译通过.

倚天照海花无数,流水高山心自知。
2007-10-11 23:16
快速回复:Skew数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016041 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved