我陷入了一个简单的C ++问题,但现在这对我来说很难。任何人都可以帮我解决这个问题。
我已经为问题编写了C ++代码,我知道代码无法打印出来作为问题的答案但我现在还不知道如何解决它。
代码如下:
#include<iostream.h>
#include<conio.h>
long int* solve10();
void main()
{
clrscr();
long int* solveten;
cout<<"Solve for ten is x factorial + y factorial equals factorial of 10"<<endl;
solveten=solve10();
cout<<"The first value is x and the second is y:"<<endl;
cout<<"The value x and the value y are:"<<endl;
for(int i=0;i<=1;i++){
cout<<*(solveten+i)<<endl;
}
getch();
}
long int* solve10(){
static long int a[2];
int k=1,x=1,l=1,y;
long int mul=1;
for(int i=1;i<=10;i++){
mul=mul*i;
}
do
{
k=x*k;
for(y=1;y<=10;y++){
l=l*y;
if((k+l)==mul){
a[0]=x;
a[1]=y;
}
}
x++;
}while(x<=10);
return a;
}
最佳答案是什么?
答案 0 :(得分:5)
在进入l
循环之前,您需要将1
重置为for y
。
但实际上,x! + y! = 10!
没有解决方案(请注意9! + 9! < 10!
)。
等式x! + y! = z!
的唯一整数解是x = 0, 1; y = 0, 1; z = 2
。
我发现了一个真正卓越的证据,这个SO答案太小而无法包含。