solution.md 1.6 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1
# 方程整数解
F
fix bug  
feilong 已提交
2

3
**题目描述**
F
fix bug  
feilong 已提交
4

每日一练社区's avatar
每日一练社区 已提交
5
方程: a^2 + b^2 + c^2 = 1000  
每日一练社区's avatar
每日一练社区 已提交
6

每日一练社区's avatar
每日一练社区 已提交
7
这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解。   
每日一练社区's avatar
每日一练社区 已提交
8

每日一练社区's avatar
每日一练社区 已提交
9 10
求出 a^2 + b^2 + c^2 = n(1<=n<=10000)的所有解解要保证c>=b>=a>=1。

11
**输入**
F
fix bug  
feilong 已提交
12

每日一练社区's avatar
每日一练社区 已提交
13
存在多组测试数据,每组测试数据一行包含一个正整数n(1<=n<=10000)
14 15

**输出**
F
fix bug  
feilong 已提交
16

每日一练社区's avatar
每日一练社区 已提交
17
如果无解则输出"No Solution"。  
每日一练社区's avatar
每日一练社区 已提交
18

每日一练社区's avatar
每日一练社区 已提交
19
如果存在多解,每组解输出1行,输出格式:a b c,以一个空格分隔  
每日一练社区's avatar
每日一练社区 已提交
20

每日一练社区's avatar
每日一练社区 已提交
21
按照a从小到大的顺序输出,如果a相同则按照b从小到大的顺序输出,如果a,b都相同则按照c从小到大的顺序输出。
22 23

**样例输入**
F
fix bug  
feilong 已提交
24

每日一练社区's avatar
每日一练社区 已提交
25 26 27
```
1000
```
每日一练社区's avatar
每日一练社区 已提交
28

29
**样例输出**
F
fix bug  
feilong 已提交
30

每日一练社区's avatar
每日一练社区 已提交
31 32 33 34 35
```
6 8 30
10 18 24
```

每日一练社区's avatar
每日一练社区 已提交
36
以下程序可以实现该功能,请你计算该程序的算法复杂度:
F
fix bug  
feilong 已提交
37

每日一练社区's avatar
每日一练社区 已提交
38
```c
每日一练社区's avatar
每日一练社区 已提交
39
#include <bits/stdc++.h>
每日一练社区's avatar
每日一练社区 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
using namespace std;

int main()
{
    int n;
    bool flag = false;
    while (cin >> n)
    {
        flag = false;
        for (int i = 1; i <= sqrt(n); i++)
        {
            for (int j = i; j <= sqrt(n); j++)
            {
                for (int k = j; k <= sqrt(n); k++)
                {
                    if (i * i + j * j + k * k == n)
                    {
                        cout << i << ' ' << j << ' ' << k << endl;
                        flag = true;
                    }
                    else if (i * i + j * j + k * k > n)
                        break;
                }
            }
        }
        if (!flag)
            cout << "No Solution" << endl;
    }

    return 0;
}
每日一练社区's avatar
每日一练社区 已提交
71 72 73 74
```

## 答案

每日一练社区's avatar
每日一练社区 已提交
75
```c
每日一练社区's avatar
每日一练社区 已提交
76
O(n^1.5)
每日一练社区's avatar
每日一练社区 已提交
77 78 79
```
## 选项

F
fix bug  
feilong 已提交
80

每日一练社区's avatar
每日一练社区 已提交
81
### A
F
fix bug  
feilong 已提交
82

每日一练社区's avatar
每日一练社区 已提交
83
```c
每日一练社区's avatar
每日一练社区 已提交
84
O(n^3)
每日一练社区's avatar
每日一练社区 已提交
85 86 87
```

### B
F
fix bug  
feilong 已提交
88

每日一练社区's avatar
每日一练社区 已提交
89
```c
每日一练社区's avatar
每日一练社区 已提交
90
O(n^2)
每日一练社区's avatar
每日一练社区 已提交
91 92 93
```

### C
F
fix bug  
feilong 已提交
94

每日一练社区's avatar
每日一练社区 已提交
95
```c
每日一练社区's avatar
每日一练社区 已提交
96
O(n^2.5)
每日一练社区's avatar
每日一练社区 已提交
97
```