博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每日一小练——数值自乘递归解
阅读量:4557 次
发布时间:2019-06-08

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

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练!

题目:数值自乘递归解

内容:假设一个n与m是正整数,那么m^n就是把m连乘n次,这是一个非常没有效率的方法。试试编写一个更有效率的程序,应该以少量n-1个乘法作为设计标准。

我的解法:上来没多想,打开vs2013就敲了起来,问题果然非常easy,分分钟就超神。。奥,不正确就攻克了!解决递归的问题,事实上关键在于找到合理的递归公式,公式仅仅要找到问题就迎刃而解了。这个题目说的是自乘,所以底数是不变的,指数上无非就3中情况,奇数,偶数和零。奇数减一可得偶数,偶数除二可奇可偶,高次的结果能够用低次的结果表示,最后的出口在零,所以这是非常easy的递归形式公式例如以下:

#include 
using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int recursion(int base, int index); int base, index; cout << "请输入底数:" << endl; cin >> base; cout << "请输入指数:" << endl; cin >> index; cout << base << "的" << index << "次方为:" << recursion(base, index) << endl; getchar(); getchar(); return 0;}int recursion(int base, int index){ int temp; if (index == 0) return 1; else if (index & 0x01 == 0) { temp = recursion(base, index >> 1); return temp * temp; } else return base * recursion(base, index - 1);}
实验结果

欢迎大家增加每日一小练,嘿嘿!

每天练一练,日久见功夫,加油!


            -End-

參考文献:《c语言名题精选百则》

转载于:https://www.cnblogs.com/mengfanrong/p/3763229.html

你可能感兴趣的文章
UI设计
查看>>
androidtab
查看>>
Windows Phone 自定义弹出框和 Toast 通知
查看>>
如何生成静态页面的五种方案
查看>>
php 事件驱动 消息机制 共享内存
查看>>
剑指offer 二叉树的bfs
查看>>
LeetCode Maximum Subarray
查看>>
让我们再聊聊浏览器资源加载优化
查看>>
underscore demo
查看>>
CSS hack
查看>>
C# Enum Name String Description之间的相互转换
查看>>
PHP wamp server问题
查看>>
Spring Data Redis学习
查看>>
js闭包理解案例-解决for循环为元素注册事件的问题
查看>>
2015.04.23,外语,读书笔记-《Word Power Made Easy》 12 “如何奉承朋友” SESSION 33
查看>>
Spring+SpringMVC+JDBC实现登录
查看>>
生与死之间
查看>>
NEFU 109
查看>>
HDU 5435
查看>>
git从已有分支拉新分支开发
查看>>