- 根据x*y=2(x*(y/2))当y为偶数时,这里的y/2为c语言中的整数除法,即向下取整
- 则当y为奇数时,x*y=2(x*(y/2))+x
- 所以x*y可以写成递归的形式,下面是程序的具体写法:
#include <iostream> #include <cstdio>using namespace std;int multiply(int x,int y);int main() {int x,y;int ans;cin>>x>>y;ans=multiply(x,y);cout<<ans<<endl;return 0; }int multiply(int x,int y) {if(y==0){return 0;}int z=multiply(x,y/2);if(y%2==0)return 2*z;else return x+2*z;}
详细解决方案
la Francais 算法
热度:61 发布时间:2023-09-30 07:38:51.0
相关解决方案