| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3452 人关注过本帖
标题:[求助]求0-7(1-8位数)所能组成的奇数个数,想得快崩溃了还想不出来
只看楼主 加入收藏
gsbe1987
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-4-14
收藏
得分:0 
另一个贴子是原来的题,我把那个题给改了一下,这个是我自己想的,不一样的咧

便宜又好看的U盘,款式多多~~店铺地址:http://shop34991947.
2007-04-14 14:04
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

哦,我还忽略了一个问题,最高位不能为0,我给你写个源程序,不能重复的


雁无留踪之意,水无取影之心
2007-04-14 14:06
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
#include<stdio.h>
int main()
{
long i,sum;
for(i=1,sum=0;i<=99999999;i++)
{
if(i%2!=0)sum++;
else continue;
}
printf("the total is %d",sum);
getch();
}

可以重复的

自我放逐。。。
2007-04-14 14:09
gsbe1987
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-4-14
收藏
得分:0 
可以重复的,我会算的,就是不能重复的,我就想不出来了~~~

便宜又好看的U盘,款式多多~~店铺地址:http://shop34991947.
2007-04-14 14:17
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

#include"stdio.h"

long arrange(int a,int b)
{
int i;
long s=1;
for(i=1;i<=b;i++,a--)
s*=a;
return s;
}

int main()
{
long sum=4; //初始化SUM为一位时奇数的个数
int i;
for(i=2;i<8;i++)
sum+=4*6*arrange(6,i-2); //4是个位可能的情况,6是最高位可能的情况,所面的是中间的数可能的情况
printf("%ld",sum);
return 0;
}

[此贴子已经被作者于2007-4-14 14:32:07编辑过]


雁无留踪之意,水无取影之心
2007-04-14 14:19
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
思路,0--7组成的数可以看成是8进制的数,那么1-8位所有的8进制数的个数就是8个8,又因为奇数跟偶数的个数一样,那么就是8进制最大数/2,再换算成10进制就是答案,不知道对不对

英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-04-14 14:27
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
以下是引用iwfy在2007-4-14 14:27:33的发言:
思路,0--7组成的数可以看成是8进制的数,那么1-8位所有的8进制数的个数就是8个8,又因为奇数跟偶数的个数一样,那么就是8进制最大数/2,再换算成10进制就是答案,不知道对不对

他说过 不能重复哈 你这样是把所有的奇数都算出来拉


   好好活着,因为我们会死很久!!!
2007-04-14 17:56
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
我认为分为三样看 高位 低位 中间位
因为要是奇数 所以低位有1,3,5,7四种 又因为不能重复 所以高位有6种(除去0)
用一个算法把中间的求出来 中间又有几种情况0,1,2,3,4,5,6种
用排列组合 求出来 就这样

   好好活着,因为我们会死很久!!!
2007-04-14 18:01
meiwen1
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-12-19
收藏
得分:0 
我刚刚用数学推算了一下.
把推算过程给大家看一下.
为奇数的结尾是除2了还余的.,那么这8个数里面就只有4个数结尾则可以成为奇数.
我先以个为数组成的奇数是4个.
然后两位的.
0不能做十位.所以只能算6位做十位.
三位数的时候0又可以插进来了(零这时可以做十为了.而且可以做6个数的十位).但是绝对不可以把0-7看成1-8..概念不同啊.
比如.
设置几个三位数.201,301,401,501,601,701.如果是其他的三位数的话,比如231,241,251,261,271,281,291.我们可以写成321.421,521,621,721,821,921.这就说.当三位数时候.我们本来可以把一组非零的数列出来时.乘以2就可以得到变换方位奇数.而有零的数是不可以互换位置的.因为零不可以做百位.做了百位的话.就等于是二位.那么重复..
虽然15楼的程序写的不错.但是对于这题目而言是不对的.
至于算法怎么写.我现在还没找到规律.只是写出了自己的一点想法
2007-04-14 18:12
chenxinfu
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-4-14
收藏
得分:0 
#include "stdio.h"
main()
{float i,s=1,sum=0,SUM=4;
for(i=6;i>=1;i--)
{s=s*i;
sum=sum+s;
}
SUM=SUM+4*6*sum;
printf("%f",SUM);
}
不知道这个对不对,哈哈。

2007-04-15 12:51
快速回复:[求助]求0-7(1-8位数)所能组成的奇数个数,想得快崩溃了还想不出 ...
数据加载中...
 
   



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

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