参考代码:
/** * 尼科彻斯定理:任何一个整数m的立方都可以写成m个连续奇数之和 * 示例:13*13*13=2197=157+159+161+163+165+167+169+171+173+175+177+179+181 * * 思路:连续的奇数就是公差为2的等差数列(来自:https://blog.dotcpp.com/a/90159) * * 假设x是首项,则m个连续奇数可表示如下(等差数列的前n项之和:Sn = 首项*项数 + 项数*(项数-1)/2*公差) * |————————————————————————————————————————————————————————————————————| * |第1项 x+0 前1项之和 x*1+0 | * |第2项 x+2 前2项之和 x*2+0+2 | * |第3项 x+4 前3项之和 x*3+0+2+4 | * |第4项 x+6 前4项之和 x*4+0+2+4+6 | * |第5项 x+8 前5项之和 x*5+0+2+4+6+8 | * |第m项 x+(m-1)*2 前m项之和 x*m+m*(m-1) | * * 由尼科彻斯定理知道,等差数列的前n项之和=项数的立方 * 也就是 m*m*m = x*m + m*(m-1) => x = m*m - m + 1 */ #include <stdio.h> #include <math.h> int InputNum() { int m; scanf("%d", &m); return m; } void Process(int m) { printf("%d*%d*%d=%.f=", m, m, m, pow(m, 3)); int x = m * m - m + 1; for (int i = 0; i < m; i++) { printf("%d", x); x = x + 2; if (i != m - 1) { printf("+"); } } } int main() { int m = InputNum(); Process(m); return 0; }
0.0分
0 人评分
字符串输入输出函数 (C++代码)(都当成字符串吧hhhhhhhh)浏览:499 |
母牛的故事 (C语言代码)浏览:471 |
计算质因子 (C++代码)浏览:1756 |
字符串比较 (C语言代码)答案错误????浏览:628 |
【亲和数】 (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:635 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:572 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:263 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:556 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:945 |