博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷OJ P1010 幂次方 解题报告
阅读量:6906 次
发布时间:2019-06-27

本文共 1212 字,大约阅读时间需要 4 分钟。

洛谷OJ P1010 幂次方 解题报告

by MedalPluS

 题目描述

  任何一个正整数都可以用2的幂次方表示。例如
        137=2^7+2^3+2^0         
同时约定方次用括号来表示,即a^b 可表示为a(b)。
由此可知,137可表示为:
        2(7)+2(3)+2(0)
进一步:7= 2^2+2+2^0   (21用2表示)
        3=2+20   
所以最后137可表示为:
        2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如:
        1315=2^10 +2^8 +2^5 +2+1
所以1315最后可表示为:
        2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

 输入描述

  一个正整数n(n≤20000)

 输出描述

  符合约定的n的0,2表示(在表示中不能有空格)

 分析

  这题有点难度,其实是思维难度【毕竟是递归。。】

  脑补了10分钟才会做

  我们可以引入树结构来分析这题,递归都可以这么做

                                                                      【137】

                                         /                                 |                             \

                                    【27】                        【23】                        【20】      //从这层起对指数分解

                               /         |         \                /         \

                         【22】 【21】   【20】  【21】  【20】          

  那么递归方法就出来了, 在主函数分解原数,然后在子函数里分解指数,分解到一层就输出2(,分解到0,1,2各有各的输出,然后分解完一个就输出)

  分解的话利用倍增来解决

 代码

1 #include 
2 #include
3 using namespace std; 4 5 int n; 6 7 void f(int n){ 8 if(n==0){ 9 printf("2(0)");10 return ;11 }12 if(n==1){13 printf("2");14 return ;15 }16 if(n==2){17 printf("2(2)");18 return ;19 }20 int up;21 printf("2(");22 while(n){23 for(up=0;(1<
<=n;up++);24 up--;25 n-=(1<
>n;35 int up;36 while(n){37 for(up=0;(1<
<=n;up++);38 up--;39 n-=(1<

 

 

 

转载于:https://www.cnblogs.com/maopengsen/p/4518531.html

你可能感兴趣的文章
LeetCode--058--最后一个单词的长度
查看>>
Mysql JSON 新特性用法
查看>>
关于老驱动不能在windows 8下正常安装的问题
查看>>
POJ 1458 Common Subsequence DP
查看>>
#ifdef,#else,#endif,#if用法详解
查看>>
(2,1,2)卷积码译码器的JAVA实现
查看>>
1112对他人的博客评论及建议
查看>>
并发——关键字volatile
查看>>
php 数据库的增删改查
查看>>
python List 对象
查看>>
为知笔记MathJax使用教程
查看>>
@RequestParam注解的使用
查看>>
JQ_简单图片拖动
查看>>
开源|性能优化利器:数据库审核平台Themis的选型与实践
查看>>
【直视骄阳】生命的留言
查看>>
数据利用的四个层次
查看>>
配置linux下oracle sqlplus/rman等历史记录回调功能
查看>>
《跟菜鸟学Cisco UC部署实战》-第 0 章 宣传-课件(一共12章,免费)
查看>>
家居建材企业信息化管理路在何方?
查看>>
华为第1书:《华为交换机学习指南》全面预售中
查看>>