[蓝桥杯]ALGO-95.算法训练_2的次幂表示
题目描述:
问题描述
任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。
将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:=^+^+^
现在约定幂次用括号来表示,即a^b表示为a(b)
此时,137可表示为:()+()+()
进一步:=^++^ (^1用2表示)
=+^
所以最后137可表示为:(()++())+(+())+()
又如:=^+^+^++
所以1315最后可表示为:
((+())+)+((+()))+(()+())++()
输入格式
正整数(<=n<=)
输出格式
符合约定的n的0,2表示(在表示中不能有空格)
样例输入 样例输出
(()++())+(+())+()
样例输入 样例输出
((+())+)+((+()))+(()+())++()
提示
用递归实现会比较简单,可以一边递归一边输出
题目描述
代码如下:
#include <stdio.h> void e(int n)
{
int i,cur;
for (i=,cur=;cur<=n;cur<<=,i++);
printf("");
while (cur > )
{
if (cur & n)
{
if (cur>)
{
printf("(");
e(i);
printf(")");
}
if (cur==);
if (cur==)
printf("(0)");
if ((n-=cur) != )
printf("+2");
}
cur>>=,i--;
}
return ;
} int main(void)
{
int n;
scanf("%d",&n);
e(n);
return ;
}
C解法
代码参考:https://www.cnblogs.com/zhangzimu/p/6193272.html
解题思路:
先计算输入数字的二进制有多少位
然后递归输出其对应二进制上为1的,
每次输出后都减去对应的值,直至为0
[蓝桥杯]ALGO-95.算法训练_2的次幂表示的更多相关文章
- 蓝桥杯算法训练_2的次幂表示+前缀表达式+Anagrams问题+出现次数最多的整数
今天做了4个简单的题,题目虽然是简单,但是对于我这样的小白,还是有很多东西需要学习的. 2的次幂表示 上面就是题目,题目说的也很清晰了,接下来就是递归的实现: #include<iostream ...
- 蓝桥杯练习系统— 算法训练 Beaver's Calculator
问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0".它非常特别,并且被计划使用在各种各样 ...
- 蓝桥杯练习系统算法训练习题加答案java版本
附上百度文库的链接:http://wenku.baidu.com/view/afb78d36b42acfc789eb172ded630b1c59ee9bf7
- Java实现 蓝桥杯 算法训练 2的次幂表示
算法训练 2的次幂表示 时间限制:1.0s 内存限制:512.0MB 问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001. 将这种2进制表示写成2的次幂的和的形式, ...
- python+java蓝桥杯ACM日常算法题训练(一)10基础题
目录 1.简单的a+b 2.第一个HelloWorld程序! 3.三个数最大值 4.密码破译 5.母牛的故事 6.7.8.9.10 @(这里写自定义目录标题) 算法题训练网站:http://www.d ...
- 算法训练 2的次幂表示(蓝桥杯C++写法)
问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001. 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0 ...
- 蓝桥杯 algo——6 安慰奶牛 (最小生成树)
问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是一个奶牛的家.FJ计 划除去P条道路中尽可能多的道路 ...
- 蓝桥杯 C语言 入门训练 Fibonacci数列
问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...
- 蓝桥杯 C语言 入门训练 序列求和
问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3+...+n的值. 样例输入 4 样例输出 10 样例输入 100 说明:有一 ...
随机推荐
- [LeetCode&Python] Problem 453. Minimum Moves to Equal Array Elements
Given a non-empty integer array of size n, find the minimum number of moves required to make all arr ...
- js知识点: 数组
1.行内元素 margin padding 左右值都有效,上下值都无效 2.var ev = ev || window.event document.documentElement.clientW ...
- 20155208 2016-2017-2 《Java程序设计》课程总结
20155208 2016-2017-2 <Java程序设计>课程总结 一.每周作业及实验报告链接汇总 一路无悔 感恩有你(预备作业一):浅谈师生关系及对java学习的期望. 精益求精,从 ...
- 2017.4.9 函数式编程FP
函数编程(简称FP)不只代指Haskell Scala等之类的语言,还表示一种编程范式,和面向对象的编程方式一样,是编程思维,软件思考方式,也称面向函数编程. 编程的本质是组合,组合的本质是范畴Cat ...
- 为移动端而设计的bootstrap的使用
一.下载 --bs ---css ----bootstrap.css ----bootstrap.min.css ---fonts ---js ----bootstrap.js ----jquery. ...
- C++学习(二十)(C语言部分)之 函数1
函数 printf 输出的函数 scanf 输入的函数函数是什么 怎么写 是一组一起执行一个任务的语句 一个程序的基本组成单位是函数 只需要知道函数名字和括号里面要填的内容 就可以调用函数 1.如果代 ...
- hello1分析
1:选择hello1文件夹并单击“打开项目”.展开“Web页”节点,然后双击该index.xhtml文件以在编辑器中查看它. 该index.xhtml文件是Facelets应用程序的默认登录页面.在典 ...
- SVN三种合并类型
https://blog.csdn.net/zht666/article/details/36178117 转自:http://wenku.baidu.com/link?url=pnALYESJnX0 ...
- 【java编程】加载Resources配置文件的方法
一.加载配置实现k-v //FILTER_PROPERTY_NAME=META-INF/abc.properties private void loadFilterConfig(Properties ...
- 用actor model实现intel tbb这样的用法
关于什么事actor model,什么事intel tbb这样的用法我就不详细说了,具体请上网查文档 class MyActor { F f; MyActor inputs[]; MyActor ou ...