“四方定理”--蓝桥杯
生活随笔
收集整理的這篇文章主要介紹了
“四方定理”--蓝桥杯
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
歡迎訪問我的新博客:http://www.milkcu.com/blog/
原文地址:http://www.milkcu.com/blog/archives/1366349160.html
題目描述
標題:四方定理
數論中有著名的四方定理:所有自然數至多只要用四個數的平方和就可以表示。
我們可以通過計算機驗證其在有限范圍的正確性。
對于大數,簡單的循環嵌套是不適宜的。下面的代碼給出了一種分解方案。
請分析代碼邏輯,并推測劃線處的代碼。
僅把缺少的代碼作為答案,通過網頁提交。
千萬不要填寫多余的代碼、符號或說明文字!!
分析
這是2013年藍橋杯模擬題的第三題,使用了遞歸。
源代碼
# include <stdio.h> # include <math.h> int f(int n, int a[], int idx) {if(n==0) return 1;if(idx==4) return 0;for(int i=(int)sqrt(n); i>=1; i--){a[idx] = i;if(i * i == n || f(n - i * i, a, idx + 1)) return 1; // 填空}return 0; }int main(int argc, char* argv[]) {for(;;){int number;printf("輸入整數(1~10億):");scanf("%d",&number);int a[] = {0,0,0,0};int r = f(number, a, 0);printf("%d: %d %d %d %d\n", r, a[0], a[1], a[2], a[3]);}return 0; }答案
i * i == n || f(n - i * i, a, idx + 1)轉載于:https://www.cnblogs.com/milkcu/archive/2013/04/19/3808939.html
總結
以上是生活随笔為你收集整理的“四方定理”--蓝桥杯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解:Drools规则引擎探究以及在IO
- 下一篇: 展示29个美丽的iPhone壁纸