问题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语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:725 |
简单的a+b (C语言代码)浏览:685 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:511 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1113 |
WU-输入输出格式练习 (C++代码)浏览:1133 |
DNA (C语言描述,数据结构)浏览:909 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:541 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:953 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:644 |
班级人数 (C语言代码)浏览:980 |