标题:关于自然数的计数问题
只看楼主
lianxiangfc
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2010-3-7
结帖率:100%
已结贴  问题点数:10 回复次数:8 
关于自然数的计数问题
各位大虾,有如下问题:统计具有该性质的自然数的个数,对于自然数n(n<=50),在n左边加上一个自然数,但加上的这个数不能超过原数的一半,继续按此规则处理,直到不能再加为止。例如 6,16,126,136,一共6个;例如10,110,210,1210,310,1310,410,2410,12410,510,2510,12510,共12个。要求依次打印出符合要求的各个数字。本人刚入门C,还是初级菜鸟,恳请各位大虾HELP。
搜索更多相关主题的帖子: 自然数 计数 
2010-08-11 09:33
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
用递归或者循环可能都行。以前见过有人问和这一样的题。
2010-08-11 09:53
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
得分:0 
我是论坛新手!多多指教!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-11 10:04
LSYHEFENG
Rank: 2
等 级:论坛游民
帖 子:112
专家分:71
注 册:2010-7-17
得分:5 
按自己的思路做,循环,递归都行,这样才会有最大收获,万一行不通,贴上来大家改改,不改变愿意不是更好?
2010-08-11 11:00
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
得分:2 
回复 4楼 LSYHEFENG
同意4楼的说法,编程的学习过程一个是学习基础知识,另外一个就是锻炼解决问题的能力!呵呵!后者是你步入更高阶段的基础!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-11 11:03
lzw7681917
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-6-1
得分:0 
用递归怎么做同求!
2010-08-11 19:36
lzw7681917
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-6-1
得分:0 
用递归怎么做同求!
2010-08-11 19:36
lianxiangfc
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2010-3-7
得分:0 
回复 2楼 pangding
以下是我写的初级产物,但效率可能不高,仅可以输入符合条件数字的个数,但不知道怎么逐个输入这些数字,可否改进一下小程序?
#include "stdio.h"
int count=0;
void left(int);
void main()
{
  int n;
  scanf("%d",&n);
  left(n);
  printf("the count are: %d\n",count);
}
void left(int n);
{
  int temp;
  if(n>0)
  {
    count++;
    for(temp=1;temp<=n/2;temp++)
     {
        left(temp);
     }
  }
}


[ 本帖最后由 lianxiangfc 于 2010-8-11 23:26 编辑 ]
2010-08-11 23:25
lichan
Rank: 1
等 级:新手上路
帖 子:2
专家分:8
注 册:2010-8-11
得分:3 
楼上的改进一下,我觉得这样比较合适:
#include "stdio.h"
int count=0;
void left(int);
void main()
{
  int n;
  scanf("%d",&n);
  left(n);
  printf("the count are: %d\n",count);

}
void left(int n)
{
  int temp;
  if(n>0)
  {
   
    for(temp=1;temp<=n/2;temp++)
     {
        left(temp);
 count++;
 printf("the temp are: %d\n",temp);
     }
  }
}
2010-08-13 08:31



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




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

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