问题1:m 个连续奇数之和的形式输出
这题还是比较明显的,可以看到从第一个奇数开始,后面的奇数就只是简单的每次加个2而已。加几个2就是m的事了。可以说已经解决了一个问题。那么现在关键问题就是如何找到这个‘初始值’。
问题2:初始值的寻找
有关这个初始值的寻找,start = n * n - n + 1:这是起始奇数,它是m个连续奇数序列中的第一个奇数。
#include <stdio.h> int main() { int n; scanf("%d", &n); // 从标准输入中读取一个整数n long long cube = (long long)n * n * n; // 计算n的立方,使用long long来存储以防止溢出 printf("%d*%d*%d=%lld=", n, n, n, cube); // 打印n的立方的表达式 int start = n * n - n + 1; // 计算起始奇数,用于分解n的立方 int ret = 0; // 用于计算奇数序列的和 for (int i = start; i <= cube; i += 2) { // 从起始奇数开始遍历到n的立方 ret += i; // 累加当前奇数到和中 if (ret != cube) { // 如果和不等于n的立方 printf("%d+", i); // 打印当前奇数并加上一个加号 } else { // 如果和等于n的立方 printf("%d", i); // 打印当前奇数但不加加号 break; // 跳出循环 } } return 0; // 返回0表示程序成功执行 }
0.0分
8 人评分
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:477 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:631 |
汽水瓶 (C++代码)(直接n/2就可以了)浏览:1137 |
川哥的吩咐 (C++代码)浏览:1065 |
C语言程序设计教程(第三版)课后习题9.4 (Java代码)浏览:1444 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1038 |
WU-整除问题 (C++代码)浏览:643 |
A+B for Input-Output Practice (C语言代码)浏览:503 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:1098 |
1126题解浏览:647 |