C语言编程题,求助!

来源:百度知道 编辑:UC知道 时间:2024/05/11 03:57:40
有两个正整数a和b,已知a*b=2048,求a、b各为什么值时,a+b的值最小.

#include<stdio.h>
void main()
{
int i,j,sum=1000,mini,minj;

for(i=1;i<=1000;i++)
for(j=1;j<=1000;j++)

if(i*j==2048)

if(i+j<sum)
{sum=i+j;
mini=i;
minj=j;
}

printf("%d %d\n",mini,minj);

}

我看肯定遍历,哈哈,懒人都像我

#include <stdio.h>

void main()
{
int sum = 2049;
int a = 1;
int b = 0;
int count_a = 0;
for(;a<2048;a++)
{
if(2048%a!=0)continue;
b=2048/a;
if(sum>(a+b))
{
count_a = a;
sum = a+b;
}
}
printf("a = %d,b = %d\n",count_a,sum-count_a);
}

void main()
{
int x = 2048;
int sum = x + 1;
int k = 1;
for (int i=1;i<=(x/2);i++)
{
if(2048%i == 0)
{
int j = 2048/i;
if(sum>(i+j))
{
sum = j +