当前位置: 代码迷 >> 综合 >> la Francais 算法
  详细解决方案

la Francais 算法

热度:61   发布时间:2023-09-30 07:38:51.0
  • 根据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;}
    

  相关解决方案