パーフェクトキューブ(列挙型) - 学習アルゴリズム

問題

^ 3 = B ^ 3 +のような形を C ^ 3 + D ^ 式3それは完璧な三次方程式と呼ばれています。
例えば、12 ^ 3 ^ 3 = 6 + 8 + 10 ^ 3 ^ 3。
すべて探して、任意の正の整数N(N≤100)のために、プログラムを書く
ようA3 = B3 + C3 + D3、その四つ組(A、B、C、D)、
ここで、A、B、C、D 1より大きい、以下N、およびb <= C <= D。
正の整数N(N≤100)を入力します。
出力の各行完璧な立方体の出力。
出力フォーマット:キューブ=、トリプル=( B、C、D)
を特徴と大腿四頭筋に、B、C、D、それぞれ、実際の位置が計算された値です。
大出力に、小さな値に従ってください。完全立方方程式の同じ2つの値は、その後、場合
b値出力低い優先度を出力する同じ小さな値のD、優先出力cの値が小さいほど、同一のままであります

サンプル入力

24

サンプル出力

キューブ= 6、トリプル=(3,4,5)
キューブ= 12、トリプル=(6,8,10)
キューブ= 18、トリプル=(2,12,16)
キューブ= 18、トリプル=(9,12、 15)
キューブ= 19、トリプル=(3,10,18)
キューブ= 20、トリプル=(7,14,17)
キューブ= 24、トリプル=(12,16,20)

ソリューションの概要:
カルテット列挙サイクルABCD、最内層における最外層A、D、各層は、列挙上昇される
[2、N]列挙の範囲を
B範囲[2、1 ]
C範囲[B、-1]
の範囲内のD [C、-1]

#include<iostream>
 #include<cstdio>
 using namespace std;
 int main(){ 
 int N;
 cin>>N;
 for(int a=2;a<=N;a++)
  for(int b=2;b<a;b++)
   for(int c=b;c<a;c++)
    for(int d=c;d<a;d++)
     if(a*a*a==b*b*b+c*c*c+d*d*d)
     printf("Cube==%d,Triple=(%d,%d,%d)\n",a,b,c,d);
    return 0;
 }
公開された72元の記事 ウォンの賞賛133 ・は 30000 +を見て

おすすめ

転載: blog.csdn.net/weixin_45822638/article/details/104991618