编写程序:有两个正整数a和b,已知a*b=2048,求a,b各为何值时,a+b的值最小?

如题所述

#include<iostream>
using namespace std;

int main()
{
int a[6],b[6];
int m,n;
int i,j,k=0,s;
for(i=1;i<=2048;i*=2)
{
for(j=2048;j>=i;j/=2)
{
if(i*j==2048)
{
a[k]=i;
b[k]=j;
k++;
}
}
}
for(s=0;s<=5;s++)
{
if(a[s]+b[s]<=a[s+1]+b[s+1])
{
m=a[s];
n=b[s];
}
else
{
m=a[s+1];
n=b[s+1];
}
}
cout<<"a="<<m<<",b="<<n<<"时,"<<"a+b的最小值为"<<m+n<<endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答