蓝桥杯2015初赛-方程整数解-枚举
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯2015初赛-方程整数解-枚举
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
方程: a^2 + b^2 + c^2 = 1000
這個方程有正整數解嗎?有:a,b,c=6,8,30 就是一組解。
求出 a^2 + b^2 + c^2 = n(1<=n<=10000)的所有解,解要保證c>=b>=a>=1。
輸入
存在多組測試數據,每組測試數據一行包含一個正整數n(1<=n<=10000)
輸出
如果無解則輸出"No Solution"。
如果存在多解,每組解輸出1行,輸出格式:a b c,以一個空格分隔
按照a從小到大的順序輸出,如果a相同則按照b從小到大的順序輸出,如果a,b都相同則按照c從小到大的順序輸出。
樣例輸入
4
1000
樣例輸出
No Solution
6 8 30
10 18 24
解題思路:
枚舉!!!
代碼如下:
#include <iostream> using namespace std;int main() {int n;while (cin>>n) {bool flag = false;for (int a = 1; a * a <= 10000; a++) {for (int b = a; b * b +a*a<= 10000; b++) {for (int c = b; c * c+b*b+a*a <= 10000; c++) {if (a * a + b * b + c * c == n && c >= b && b >= a ) {cout << a << " " << b << " " << c << endl;flag = true;}}}}if (!flag) {cout << "No Solution" << endl;}}return 0; } 但是不知道為什么如果這樣寫的話,就ac不了了??? int n; while(1) {cin>>n; }有大佬知道為什么的話,可以評論留言幫助一波哦,小弟在此感謝了!!!
總結
以上是生活随笔為你收集整理的蓝桥杯2015初赛-方程整数解-枚举的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每一帧都是壁纸每一帧都是壁纸的纪录片
- 下一篇: 蓝桥杯2015初赛-星系炸弹-日期计算