求0-7所能组成的奇数个数。请编程实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求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;
参考技术A 您说的不是很清楚,要组成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 参考技术B 只是求个数,可用递归函数做
一位数的有4个(1,3,5,7)
两位数的有4*7=28个(个数1,3,5,7,十位1,2,3,4,5,6,7)
以后每多一位数就多乘一个8
Python每日一问34
问:
基础题:
定义函数实现以下功能:求出 0-n 所能组成的奇数个数,
位数最多 n+1 (0<n<10),
比如键盘输入n=7,求出0-7所能组成的奇数个数
提高题:
有如下分数序列: 2/1 , 3/2 , 5/3 , 8/5 , 13/8 , 21/13...
求出这个数列的前 N 项之和,N由键盘输入
答:
基础题:
定义函数实现以下功能:求出 0-n 所能组成的奇数个数,
位数最多 n+1 (0<n<10),
比如键盘输入n=7,求出0-7所能组成的奇数个数
# 判断 0-n 之间有几个奇数 def judge_odd_num(num): odd_num = [] for i in range(1, num + 1): if i % 2 != 0: odd_num.append(i) return odd_num def calc_odd_nums(num, odd_num_count): ‘‘‘ 当一个数的最后一位为奇数时,那么这个数一定为奇数; 首位肯定不为0; 从该数为1位数到该数为(n+1)位数开始统计奇数的个数: 1.当只有一位数时,奇数个数为 0-n之间的奇数个数,此处以7为例,0-7之间有4个奇数; 2.当该数为两位数时,奇数个数为4*7=28, 首位有7个数的可能性,个位只有4个奇数可选; 3.当该数为三位数时,奇数个数为:4*8*7=224,首位仍然是7个数,十位可以是0-7的任意一个数,即8个数的可能性,个位依旧 以此类推。。。 :param num: 输入的数字n :param odd_num_count: 0-n之间的奇数个数 ‘‘‘ sum_odd_count = 0 for i in range(1, num+1): if i == 1: odd_num_count = odd_num_count elif i == 2: first_place = num odd_num_count = odd_num_count * first_place if i > 2: odd_num_count *= num+1 sum_odd_count += odd_num_count print(‘%d位数的奇数个数为%d‘ % (i, odd_num_count)) print(‘0-%s所能组成的奇数个数总和为:%d‘ %(num, sum_odd_count)) if __name__ == ‘__main__‘: decimal_places = int(input("请输入数字n(1<n<10):")) odd_num = judge_odd_num(decimal_places) odd_num_count = len(odd_num) calc_odd_nums(decimal_places, odd_num_count)
提高题:
有如下分数序列: 2/1 , 3/2 , 5/3 , 8/5 , 13/8 , 21/13...
求出这个数列的前 N 项之和,N由键盘输入
def sum_fraction(n): x, y, i, j = 1, 2, 0, 0 while i < n: j += y/x x, y = y, x+y i += 1 return j n = eval(input(‘请输入:‘)) print(‘:.2f‘.format(sum_fraction(n)))
以上是关于求0-7所能组成的奇数个数。请编程实现的主要内容,如果未能解决你的问题,请参考以下文章