解题思路:
..........这个题出的有问题,如果不知道这个定理的证明很难做
本题是一个定理,我们先来证明它是成立的。
对于任一正整数a,不论a是奇数还是偶数,整数(a×a-a+1)必然为奇数。
构造一个等差数列,数列的首项为(a×a-a+1),等差数列的差值为2(奇数数列),则前a项的和为:
a×((a×a-a+1))+2×a(a-1)/2
=a×a×a-a×a+a+a×a-a
=a×a×a
定理成立。证毕。
通过定理的证明过程可知L所要求的奇数数列的首项为(a×a-a+1),长度为a。
编程的算法不需要特殊设计,可按照定理的证明过直接进行验证。
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int n,a,i;
scanf("%d",&n);
a=n*n-n+1;
printf("%d*%d*%d=%d=%d",n,n,n,n*n*n,a);
for(i=1;i<n;i++)
{
a=a+2;
printf("+%d",a);
}
}
0.0分
48 人评分
#include"stdio.h" int fun(int n) { int x,sum=0,i,j; x=n*n*n; for(i=1;i<x/2;i+=2) { sum=0; for(j=i;j<x/2;j+=2) { sum+=j; if(sum>x) break; if(sum==x) { break; } } if(sum==x) { return i; break; } } } main() { int x,sum=0,i; scanf("%d",&x); printf("%d*%d*%d=%d=",x,x,x,x*x*x); for(i=fun(x);1;i+=2) { sum+=i; printf("%d",i); if(sum!=(x*x*x)) printf("+"); else break; } } 问题:输出超额 帮忙看一下问题所在
#include<bits/stdc++.h> using namespace std; int main() { int a; cin >> a; cout << a << "*" << a << "*" << a << "=" << pow(a, 3) << "="; for (int i = a*a-a+1; i < a * a + a; i += 2) { cout << i; if (i != a * a + a - 1) cout << "+"; } } 哥我方法差不多,为什么会错误87
#include<stdio.h> int main() { int i,j,sum=0,n; scanf("%d",&n); for(i=1;i<n*n*n;i+=2) { sum=0; for(j=i+2;j<=n*n*n;j+=2) { sum=sum+j; if(sum==n*n*n) { printf("%d*%d*%d=%d=",n,n,n,sum); for(i=i+2;i<=j;i+=2) { printf("%d",i); if(i!=j) printf("+"); } } if(sum==n*n*n) break; } if(sum==n*n*n) break; } return 0; }
乐 2019-04-29 20:58:55 |
这个运行的答案也对啊,怎么就是提示输出超限%50啊??????
C语言训练-邮票组合问题* (C语言代码)......浏览:689 |
K-进制数 (C++代码)浏览:938 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:604 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1270 |
C语言训练-立方和不等式 (C语言代码)浏览:779 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:287 |
WU-复数求和 (C++代码)浏览:2119 |
【金明的预算方案】 (C++代码)浏览:996 |
最小公倍数 (C语言代码)浏览:1104 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:624 |