• 洛谷 P1100 高低位交换


    题目描述

    给出一个小于2^32的正整数。这个数可以用一个32位的二进制数表示(不足32位用0补足)。我们称这个二进制数的前16位为“高位”,后16位为“低位”。将它的高低位交换,我们可以得到一个新的数。试问这个新的数是多少(用十进制表示)。

    例如,数1314520用二进制表示为0000 0000 0001 0100 0000 1110 1101 1000(添加了11个前导0补足为32位),其中前16位为高位,即0000 0000 0001 0100;后16位为低位,即0000 1110 1101 1000。将它的高低位进行交换,我们得到了一个新的二进制数0000 1110 1101 1000 0000 0000 0001 0100。它即是十进制的249036820。

    输入输出格式

    输入格式:

     

    一个小于2^32的正整数

     

    输出格式:

     

    将新的数输出

     

    输入输出样例

    输入样例#1: 复制
    1314520
    输出样例#1: 复制
    249036820
    思路:模拟
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int pos;
    long long n,ans;
    int num[33];
    int main(){
        scanf("%lld",&n);
        while(n){
            num[++pos]=n%2;
            n/=2;
        }
        for(int i=1;i<=16;i++)
            swap(num[i],num[i+16]);
        for(int i=1;i<=32;i++)
            ans+=num[i]*pow(2,i-1);
        cout<<ans;
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    for 循环/ while 循环/ do-while 循环
    让元素脱离动画流
    缓存布局信息
    一个程序员的管理心得
    CenOS下Tomcat外网不能访问
    卸载CentOS自带的JDK并配置指定JDK环境变量
    Linux系统安装Mysql
    系统的非功能性需求
    做软件的追求
    路途小歇
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7846217.html
Copyright © 2020-2023  润新知