

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define ll long long
#define ull unsigned long long
int main()
{
int n;
while(~scanf("%d",&n))
{
int flag=0;
for(int a=1;a<=sqrt(n);a++)
{
for(int b=a;b<=sqrt(n);b++)
{
for(int c=b;c<=sqrt(n);c++)
{
if(a*a+b*b+c*c==n)
{
flag=1;
printf("%d %d %d\n",a,b,c);
}
else if(a*a+b*b+c*c>n) break;
}
}
}
if(flag==0) printf("No Solution\n");
}
}
本文探讨了一个算法问题,即寻找三个正整数的立方和等于给定整数N的所有可能组合。通过使用三重循环和优化的边界条件,算法有效地搜索了所有可能的组合,并打印出所有找到的解决方案或在没有找到解决方案时返回'No Solution'。
1725

被折叠的 条评论
为什么被折叠?



