九度OJ 1095:2的幂次方 (递归)
来源:互联网 发布:excel中数据怎么分列 编辑:程序博客网 时间:2024/06/04 17:56
- 题目描述:
Every positive number can be presented by the exponential form.For example, 137 = 2^7 + 2^3 + 2^0。
Let's present a^b by the form a(b).Then 137 is presented by 2(7)+2(3)+2(0). Since 7 = 2^2 + 2 + 2^0 and 3 = 2 + 2^0 , 137 is finally presented by 2(2(2)+2 +2(0))+2(2+2(0))+2(0).
Given a positive number n,your task is to present n with the exponential form which only contains the digits 0 and 2.
- 输入:
For each case, the input file contains a positive integer n (n<=20000).
- 输出:
For each case, you should output the exponential form of n an a single line.Note that,there should not be any additional white spaces in the line.
- 样例输入:
1315
- 样例输出:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
- 来源:
- 2006年上海交通大学计算机研究生机试真题
思路:
需用递归来做,注意边界条件,2不应该被打印成2(0).
代码:
#include <stdio.h> void present(int n){ if (n == 0 || n == 2) { printf("%d", n); return; } int i; int a[20], c; for (i=0; n>0; i++) { a[i] = n%2; n /= 2; } c = i; for (i=c-1; i>=0; i--) { if (a[i] == 0) continue; if (i != c-1) printf("+"); if (i == 1) { printf("2"); continue; } printf("2("); present(i); printf(")"); }} int main(void){ int n; while (scanf("%d", &n) != EOF) { present(n); printf("\n"); } return 0;}/************************************************************** Problem: 1095 User: liangrx06 Language: C Result: Accepted Time:0 ms Memory:912 kb****************************************************************/
0 0
- 九度OJ 1095:2的幂次方 (递归)
- 九度OJ 1095 2的幂次方
- 九度OJ 1095 2的幂次方
- 九度 oj 题目1095:2的幂次方
- 九度[1095]-2的幂次方
- 九度OJ 1514 数值的整数次方【算法】
- 九度OJ-题目1514:数值的整数次方
- 九度OJ 1092:Fibonacci (递归)
- 九度oj 1120 递归(dfs)
- 二进制_递归_题目1095:2的幂次方
- 递归解决2的幂次方
- 递归之 2的幂次方表示
- 递归-2的幂次方表示
- 九度 Online Judge 算法 刷题 题目1095:2的幂次方
- 【剑指Offer面试编程题】题目1514:数值的整数次方---九度OJ
- 九度OJ 1040:Prime Number(质数) (递归)
- 九度OJ 1161:Repeater(复制器) (递归)
- 九度OJ 1459 Prime ring problem(递归)
- Objective - C 字符串 数组 字典 集合的基本使用
- 第7周实践项目4 - 队列数组
- 【Android应用开发】Android Studio 错误集锦 -- 将所有的 AS 错误集合到本文
- 高精度除法与求余C++版和java版
- 寄存器知识
- 九度OJ 1095:2的幂次方 (递归)
- 未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0, Culture=neutral, PublicKeyToken
- 第七周项目5-排队看病问题
- 第八周 项目5-计数的模式匹配
- 第六周项目5—后缀表达式
- 第七周项目5-排队看病模拟
- 第八周项目3 - 顺序串算法
- UI第一天学习总结
- 第七周项目5-排队看病模拟