求0-7所能组成的奇数个数。请编程实现

给出详细编程,和流程图.

//求0—7所能组成的奇数个数
#include<iostream.h>
int A(int m,int n);/*全排列计算函数*/
int Eight_n(int n);/*8的n次方*/
void main()
{
int i,sum=4;/*只有一位数时有4个数满足*/
for(i=2;i<=8;i++)/*位数从2位到8位*/
{
sum+=4*6*A(6,i-2);/*个位有4种,最高位有6种,中间位从剩下6个数中取出i-2个数,这i-2个数进行全排列*/
// sum+=4*7*Eight_n(i-2);/*各位数字可重复,个位4种,最高位7种,其余i-2位每位8种取法*/
}
cout<<sum<<endl;
}

int A(int m,int n)
{
int sum=1;
while(n!=0)
{
sum*=m;
m--;
n--;
}
return sum;
}

int Eight_n(int n)
{
int sum=1;
while(n--)
{
sum*=8;
}
return sum;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-06
您说的不是很清楚,要组成8位数的奇数,还是1-8位数的奇数都包括?告诉你8位数的计算方法:
个位是1、3、5、7中的一个 ,可选择性为4个;
第8位数位不能是0,在余下的6个数中选,可选性为6个;
第2位数在余下的6个数中选,可选性为6个;
第3位数在余下的5个数中选,可选性为5个;
第4位数在余下的4个数中选,可选性为4个;
第5位数在余下的3个数中选,可选性为3个;
第6位数在余下的2个数中选,可选性为2个;
第7位数在余下的1个数中选,可选性为1个;
所以答案是6*6*5*4*3*2*1=4320本回答被网友采纳
第2个回答  2019-08-01
只是求个数,可用递归函数做
一位数的有4个(1,3,5,7)
两位数的有4*7=28个(个数1,3,5,7,十位1,2,3,4,5,6,7)
以后每多一位数就多乘一个8
相似回答