热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我想静静3

★实验任务上回说到,你奔走于各个世界线拯救静静。现在,完成任务的你决定玩个简单的游戏静一静。我们知道,数字在计算机里是用二进制存储的&#x
★ 实验任务
上回说到,你奔走于各个世界线拯救静静。现在,完成任务的你决定玩个简单的游戏静
一静。我们知道,数字在计算机里是用二进制存储的,现在你想知道如果把一个数字的二进
制倒过来是多少。,比如 int a = 5,用二进制表示就是 00000000000000000000000000000101。
把它倒过来就是 10100000000000000000000000000000,对应的十进制就是 2684354560。
★ 数据输入
输入第一行为一个数 N,代表一共有 N 个数要处理。0 接下去有 N 个 32 位整数
★ 数据输出
对于每个数,输出二进制逆序后对应的十进制的值是多少
int 的。
输入示例 
5
0
1
2
3
4

输出示例

2147483648
1073741824
3221225472

536870912  


[解题思路]

首先我们想到的是将一个数转化为二进制,再反过来转化为十进制数,对应的代码为:

[代码]

#include
#include
int main(){int n;scanf("%d",&n);while(n--){unsigned int sum=0,m;scanf("%d",&m);unsigned int a[32]={0};int k=0;while(m){int temp=m%2;m/=2;a[k++]=temp;}for(int i=31,j=0;i>=0;i--,j++){unsigned int t=pow(2*a[i],j);sum+=t;}printf("%u\n",sum);}
}


这样的话,对于时间的要求就会很高,这时候我们考虑到要优化代码:

我们知道

a[n]*(2^n)+a[n-1]*(2^n-1)+a[n-2]*(2^n-2)+......+a[2]*(2^2)+a[1]*(2^1)+a[0]*(2^0)=a[n]*2{a[n-1]*2{a[n-2]*2{......}}}

所以我们可以从里面到外面进行处理这个问题

[代码]

#include
unsigned change(int n);
int main()
{int num;scanf("%d",&num);while(num--){int n;unsigned m;scanf("%d",&n);m=change(n);printf("%u\n",m);}
}unsigned change(int n)
{int i=31;unsigned a[32]={0};unsigned sum=0;while(n){a[i]=n%2;n/=2;i--;}//用a[32]存储该数的二进制数for(i=31;i>0;i--){sum=a[i]*2;a[i-1]+=sum;}return sum;
}




推荐阅读
  • 数据结构入门:栈的基本概念与操作
    本文详细介绍了栈这一重要的数据结构,包括其基本概念、顺序存储结构、栈的基本操作(如入栈、出栈、清空栈和销毁栈),以及如何利用栈实现二进制到十进制的转换。通过具体代码示例,帮助读者更好地理解和应用栈的相关知识。 ... [详细]
  • C语言基础入门:7个经典小程序助你快速掌握编程技巧
    本文精选了7个经典的C语言小程序,旨在帮助初学者快速掌握编程基础。通过这些程序的实践,你将更深入地理解C语言的核心概念和语法结构。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本文介绍了 Winter-1-C A + B II 问题的详细解题思路和测试数据。该问题要求计算两个大整数的和,并输出结果。我们将深入探讨如何处理大整数运算,确保在给定的时间和内存限制下正确求解。 ... [详细]
  • 本文深入探讨了POJ2762问题,旨在通过强连通分量缩点和单向连通性的判断方法,解决有向图中任意两点之间的可达性问题。文章详细介绍了算法原理、实现步骤,并附带完整的代码示例。 ... [详细]
  • 本文介绍了Linux系统中的文件IO操作,包括文件描述符、基本文件操作函数以及目录操作。详细解释了各个函数的参数和返回值,并提供了代码示例。 ... [详细]
  • 哈密顿回路问题旨在寻找一个简单回路,该回路包含图中的每个顶点。本文将介绍如何判断给定的路径是否构成哈密顿回路。 ... [详细]
  • 本文探讨了在C++中如何有效地清空输入缓冲区,确保程序只处理最近的输入并丢弃多余的输入。我们将介绍一种不阻塞的方法,并提供一个具体的实现方案。 ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • 树链问题的优化解法:深度优先搜索与质因数分解
    本文介绍了一种通过深度优先搜索(DFS)和质因数分解来解决最长树链问题的方法。我们通过枚举树链上的最大公约数(GCD),将所有节点按其质因子分类,并计算每个类别的最长链,最终求得全局最长链。 ... [详细]
  • 给定一个整数数组arr,找到min(b)的总和,其中b的范围为arr的每个(连续)子数组。由于答案可能很大,因此返回答案模10^9+7。classSolution{publicin ... [详细]
  • 在Java中,this是一个引用当前对象的关键字。如何通过this获取并显示其所指向的对象的属性和方法?本文详细解释了this的用法及其背后的原理。 ... [详细]
  • 编程挑战:2019 Nitacm 校赛 D 题 - 雷顿女士与分队(高级版)
    本文深入解析了2019年Nitacm校赛D题——雷顿女士与分队(高级版),详细介绍了问题背景、解题思路及优化方案。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文介绍如何在 C++ 中使用链表结构存储和管理数据。通过具体示例,展示了静态链表的基本操作,包括节点的创建、链接及遍历。 ... [详细]
author-avatar
mobiledu2502921107
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有