标题:被一道题弄凌乱了,写了半天总是不行,求助下啊
取消只看楼主
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
结帖率:78.13%
已结贴  问题点数:10 回复次数:4 
被一道题弄凌乱了,写了半天总是不行,求助下啊
任何一个自然数m的立方均可写成m个连续奇数之和。例如:
 1^3=1
 2^3=3+5
 3^3=7+9+11
 4^3=13+15+17+19
编程实现:输入一自然数n,求组成n^3的n个连续奇数。



#include <stdio.h>

main()
{
    int n,sum;
    int i,j,k=1;
    printf("please enter n:\n");
    scanf("%d",&n);
   while(1)
   {
      i=k;
      sum=0;
    while(n--)
   {
         sum+=i;
         i+=2;
      if(sum==n*n*n)
     {
        for(j=0;j<n;j++)
        {
            printf("%d\n",i);
             i=i-2;
        }
     }
    }
  
     
         k=k+2;
   
   }
}


写的乱七八糟,蒙圈了。。
搜索更多相关主题的帖子: include please 自然数 
2013-01-05 23:00
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
得分:0 
要是不按你那个方法,就是让计算机一个一个算怎么弄??
帮改下我的程序

#include <stdio.h>

main()
{
    int n,sum=0;
    int i,j,k=1;
    printf("please enter n:\n");
    scanf("%d",&n);
   while(1)
   {
      i=k;
    while(n--)
      {
         sum+=i;
         i+=2;
        // if(sum==n*n*n) break;
      }
     if(sum==n*n*n) break;
     k+=2;
   }
  for(j=0;j<n;j++)
     {
        printf("%d\n",i);
        i=i-2;
     }
   
}
2013-01-05 23:57
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
得分:0 
回复 10楼 此夜望月
n是几就有几个连续奇数,你这个不是吧
2013-01-06 00:00
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
得分:0 
回复 4楼 azzbcc
其实理清思路就行
 
n^3 = a1 + a2 +...+ an
 
其中a1是第(1 + 2 + 3 +...+ (n-1) = (n-1)*n/2 )个奇数,也就是a1 = 2 * ( (n-1)*n/2 ) + 1 = (n-1)*n + 1
 
然后还有a2 = a1 + 2....就这样输出 n 个连续奇数


a1你是怎么算出来的,能说的详细点吗。。
2013-01-06 01:00
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
得分:0 
回复 22楼 azzbcc
求a1前面有多少个奇数的式子(n-1)*n/2是怎么来的??
2013-01-06 01:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-395256-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.788876 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved