心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0

超级水题!直接模拟即可,我用了__int64,省的出什么事。

我的代码如下:

#include<stdio.h>
typedef __int64 Long;
Long f(
long a,long n)
{
    Long i,re
=1;
    
for(i=1;i<=n;i++)
      re
*=a;
    
return re;
}

int main()
{
    Long a,i,k,s[
2][50]={0};
    scanf(
"%I64d",&a);
    k
=1;
    
while(a>0)
    
{
       s[
0][k]=a%2;
       k
++;
       a
/=2;
    }

    
for(i=1;i<=16;i++)
      s[
1][i+16]=s[0][i];
    
for(i=17;i<=32;i++)
      s[
1][i-16]=s[0][i];
      a
=0;
    
for(i=1;i<=32;i++)
      a
+=(s[1][i]*f(2,i-1));
    printf(
"%I64d\n",a);
return 0;
}

posted on 2010-01-06 20:10 lee1r 阅读(169) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:基础/模拟

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理