编写一个递归函数求满足条件的最大n值 1^2+2^2+3^2+…+n^2<=1000用while

如题所述

python:
n = 1
sum = 0
while sum + n**2 <= 1000:
sum += n**2
n += 1
print("满足条件的最大n值为:", n-1)
C语言:
#include <stdio.h>
int sum_of_squares(int n, int sum) {
int square = n * n;
sum += square;
if (sum <= 1000) {
return sum_of_squares(n + 1, sum);
}
return n - 1;
}
int main() {
int n = 1;
int sum = 0;
int max_n = sum_of_squares(n, sum);
printf("The maximum n value is %d\n", max_n);
return 0;
}
java
public class Main {
public static void main(String[] args) {
int n = getMaxN(1);
System.out.println(n);
}
public static int getMaxN(int i) {
if (getSum(i) > 1000) {
return i - 1;
} else {
return getMaxN(i + 1);
}
}
public static int getSum(int n) {
int sum = 0;
int i = 1;
while (i <= n) {
sum += i * i;
i++;
}
return sum;
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答