问题描述:
任何一个自然数n的立方都等于n个连续奇数之和。
示例:
输入:1
输出:1*1*1=1
输入:2
输出:2*2=3+5
输入:3
输出:3*3*3=7+9+11
方法:双重for循环,第一层for循环是控制从哪位奇数开始相加,第二层for循环是控制连续加n个奇数,然后进行判断n个奇数相加是否等于n的立方,若等于,按照输出格式输出。否则让第一层for循环的变量+2。
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
int n, sum;
int i, j;
printf("input n:");
scanf("%d", &n);
for (i = 1; i < n * n * n; i += 2) {//i的范围从1到n^3
sum = 0;
for (j = i; j < i + 2 * n; j += 2) {//j从i开始加,每次加n个奇数,因为j每次加2,
//所以判断条件是2*n+i
sum += j;
}
if (sum == n * n * n) {
printf("%d*%d*%d=",n,n,n);
for (j = i; j < i + 2 * (n - 1); j += 2) {//按照输出格式输出,最后一个数不用“+”
printf("%d+", j);
}
printf("%d", j);//另外将最后一个数输出
}
}
printf("\n");
return 0;
}
代码运行截图:
如果该内容对你有小小的帮助,请给我点个赞!谢谢。