日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“四方定理”--蓝桥杯

發(fā)布時(shí)間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “四方定理”--蓝桥杯 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

歡迎訪問我的新博客:http://www.milkcu.com/blog/

原文地址:http://www.milkcu.com/blog/archives/1366349160.html

題目描述

標(biāo)題:四方定理
數(shù)論中有著名的四方定理:所有自然數(shù)至多只要用四個(gè)數(shù)的平方和就可以表示。
我們可以通過計(jì)算機(jī)驗(yàn)證其在有限范圍的正確性。
對(duì)于大數(shù),簡單的循環(huán)嵌套是不適宜的。下面的代碼給出了一種分解方案。

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(_______________________) return 1; // 填空}return 0; }int main(int argc, char* argv[]) {for(;;){int number;printf("輸入整數(shù)(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; }

請(qǐng)分析代碼邏輯,并推測劃線處的代碼。
僅把缺少的代碼作為答案,通過網(wǎng)頁提交。
千萬不要填寫多余的代碼、符號(hào)或說明文字!!

分析

這是2013年藍(lán)橋杯模擬題的第三題,使用了遞歸。

源代碼

# 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("輸入整數(shù)(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)

轉(zhuǎn)載于:https://www.cnblogs.com/milkcu/archive/2013/04/19/3808939.html

總結(jié)

以上是生活随笔為你收集整理的“四方定理”--蓝桥杯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。