c++,验证任何一个自然数n的立方都可以写成n个连续奇数之和,求修改#includevoid main( ){int n,i,j=1,h,k=0;cin>>n;h=n*n*n;for(i=1;i
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/03 23:10:35
![c++,验证任何一个自然数n的立方都可以写成n个连续奇数之和,求修改#includevoid main( ){int n,i,j=1,h,k=0;cin>>n;h=n*n*n;for(i=1;i](/uploads/image/z/671960-56-0.jpg?t=c%2B%2B%2C%E9%AA%8C%E8%AF%81%E4%BB%BB%E4%BD%95%E4%B8%80%E4%B8%AA%E8%87%AA%E7%84%B6%E6%95%B0n%E7%9A%84%E7%AB%8B%E6%96%B9%E9%83%BD%E5%8F%AF%E4%BB%A5%E5%86%99%E6%88%90n%E4%B8%AA%E8%BF%9E%E7%BB%AD%E5%A5%87%E6%95%B0%E4%B9%8B%E5%92%8C%2C%E6%B1%82%E4%BF%AE%E6%94%B9%23includevoid+main%28+%29%7Bint+n%2Ci%2Cj%3D1%2Ch%2Ck%3D0%3Bcin%3E%3En%3Bh%3Dn%2An%2An%3Bfor%28i%3D1%3Bi)
c++,验证任何一个自然数n的立方都可以写成n个连续奇数之和,求修改#includevoid main( ){int n,i,j=1,h,k=0;cin>>n;h=n*n*n;for(i=1;i
c++,验证任何一个自然数n的立方都可以写成n个连续奇数之和,求修改
#include
void main( )
{int n,i,j=1,h,k=0;
cin>>n;
h=n*n*n;
for(i=1;i
c++,验证任何一个自然数n的立方都可以写成n个连续奇数之和,求修改#includevoid main( ){int n,i,j=1,h,k=0;cin>>n;h=n*n*n;for(i=1;i
你目前的循环 只是从1累加 这样是不符合题意的
应该是对于一些列的奇数 做从该奇数开始 共计n个奇数的累加 直到和为立方值为止
这个是思路
接下来是我写的程序,中间对累加做了优化 采用等差数列求和公式 减少循环开销
供参考
#include <iostream>
using namespace std;
int main()
{
\x05int n;
\x05int i;
\x05int n3, sum;
\x05cin >> n;
\x05if(n > 1290 || n < -1290)
\x05{
\x05\x05cout << "out of range\n";
\x05\x05return -1;
\x05}
\x05n3 = n*n*n;
\x05for(i = 1; ; i +=2)
\x05{
\x05\x05sum = (i + n - 1)*n;
\x05\x05if(sum == n3)
\x05\x05{
\x05\x05\x05cout<<"ok. " << n << "^3 = " << n3 << "= " << i << "+ ... + "<< i+2*n-2<<endl;
\x05\x05\x05break;
\x05\x05}
\x05\x05if(sum > n3) break;
\x05}
\x05if(sum != n3) cout << "failed" << endl;
\x05return sum != n3;
}