OpenJudge 2810(1543)완벽 한 큐 브/Poj 1543 완벽 한 큐 브
6658 단어 open
http://bailian.openjudge.cn/practice/2810/
http://bailian.openjudge.cn/practice/1543/
http://poj.org/problem?id=1543
2.제목:
Perfect Cubes
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 13190
Accepted: 6995
Description
For hundreds of years Fermat's Last Theorem, which stated simply that for n > 2 there exist no integers a, b, c > 1 such that a^n = b^n + c^n, has remained elusively unproven. (A recent proof is believed to be correct, though it is still undergoing scrutiny.) It is possible, however, to find integers greater than 1 that satisfy the "perfect cube" equation a^3 = b^3 + c^3 + d^3 (e.g. a quick calculation will show that the equation 12^3 = 6^3 + 8^3 + 10^3 is indeed true). This problem requires that you write a program to find all sets of numbers {a,b,c,d} which satisfy this equation for a <= N.
Input
One integer N (N <= 100).
Output
The output should be listed as shown below, one perfect cube per line, in non-decreasing order of a (i.e. the lines should be sorted by their a values). The values of b, c, and d should also be listed in non-decreasing order on the line itself. There do exist several values of a which can be produced from multiple distinct sets of b, c, and d triples. In these cases, the triples with the smaller b values should be listed first.
Sample Input
24
Sample Output
Cube = 6, Triple = (3,4,5)
Cube = 12, Triple = (6,8,10)
Cube = 18, Triple = (2,12,16)
Cube = 18, Triple = (9,12,15)
Cube = 19, Triple = (3,10,18)
Cube = 20, Triple = (7,14,17)
Cube = 24, Triple = (12,16,20)
Source
Mid-Central USA 1995
3.사고방식:
매 거+타 표(계산 횟수 감소)
a 는 오름차 순 으로 배열 하고 b,c,d 는 오름차 순 으로 배열 해 야 합 니 다.
4.코드:
1 #include <iostream>
2 #include <cstdio>
3
4 #define START_N 2
5
6 using namespace std;
7
8 int main()
9 {
10 int n;
11 cin>>n;
12
13 int *arr_cube = new int[n];
14
15 int i,j,k,p;
16 for(i = START_N; i <= n; ++i)
17 {
18 arr_cube[i - START_N] = i * i * i;
19 for(j = START_N; j <= i; ++j)
20 {
21 for(k = j; k <= i; ++k)
22 {
23 for(p = k; p <= i; ++p)
24 {
25 if(arr_cube[i - START_N] == arr_cube[j - START_N]
26 + arr_cube[k - START_N] + arr_cube[p - START_N])
27 {
28 cout<<"Cube = "<<i<<", Triple = ("<<j<<","<<k<<","<<p<<")"<<endl;
29 }
30 }
31 }
32 }
33
34 }
35
36
37 delete [] arr_cube;
38 return 0;
39 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
OpenBB 터미널로 오픈 소스 동향을 모니터링하는 방법!우리는 오픈 소스 프로젝트에 대해 약간 편파적일 가능성이 있습니다. 나머지 세계는 Elon Musk가 알고리즘을 공개하는 것에 대해 트와트를 해왔기 때문에 OSS가 무엇인지 배우는 것일 수 있습니다. 우리 모두는 그...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.