四方数定理 java_java实现第二届蓝桥杯四方定理

四方定理.

数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。

我们可以通过计算机验证其在有限范围的正确性。

对于大数,简单的循环嵌套是不适宜的。下面的代码给出了一种分解方案。

请仔细阅读,填写空缺的代码(下划线部分)。

注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

直接写在题面中不能得分。

int f(int n, int a[], int idx)

{

if(______________) return 1; // 填空1

if(idx==4) return 0;

for(int i=(int)sqrt(n); i>=1; i--)

{

a[idx] = i;

if(_______________________) return 1; // 填空2

}

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;

}

a[0]*a[0] + a[1]*a[1] + a[2]*a[2] + a[3]*a[3] == n

f(n, a, idx + 1) == 1

来自网友:

本题满分: 9分

填空1: (3分)

n==0

或者:0==n

填空2: (6分)

f(n-i*i, a, idx+1)

或者:

f(n-i*i, a, idx+1) > 0

f(n-i*i, a, idx+1) == 1

标签:java,idx,int,定理,return,number,蓝桥,第二届,填空

来源: https://blog.csdn.net/a1439775520/article/details/97677587

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值