求五位数是奇数的个数

依然是穷举,这些代码让人怀疑for循环天生就是为穷举而生!
题:从0~9的10个数字中,选出不重复的五位数,其个位数为奇数的可能为多少?

/*完整代码*/
#include <iostream>
using namespace std;
int a[5]={1,3,5,7,9};
int b[5];
int main()
{
    int n=0;
    for(int i=0;i<5;i++)/*第5位*/
    {
        b[4]=a[i];
        for(int j=0;j<10;j++)/*第1位*/
        {
            if(j!=0 && j!=b[4])
            {
                b[0]=j;
                for(int k=0;k<10;k++)/*第2位*/
                {
                    if(k!=b[0] && k!=b[4])
                    {
                        b[1]=k;
                        for(int h=0;h<10;h++)/*第3位*/
                            {
                                if(h!=b[0] && h!=b[1] && h!=b[4])
                                {
                                    b[2]=h;
                                        for(int g=0;g<10;g++)/*第4位*/
                                        {
                                            if(g!=b[2] && g!=b[4] && g!=b[0] && g!=b[1])
                                            {
                                                b[3]=g;
                                                n++;
                                                for(int v=0;v<5;v++)
                                                cout<<b[v]<<" ";
                                                cout<<endl;
                                            }
                                        }
                                }
                            }
                    }
                }
            }
        }
    }
     cout<<n<<endl;/*13440种可能*/
    return 0;
}
时间: 2024-10-21 21:43:25

求五位数是奇数的个数的相关文章

求二进制数中1的个数(编程之美)

求二进制数中1的个数 继京东618店庆时买的<编程之美>这本书,翻了翻,发现里面的题还是挺有意思的,看起来我们觉得很简单的题目,解法却有很多很多种,真是一个比一个巧妙,于是,决定记录一下. 书中的题目如下 对于一个字节(8bit)的无符号数,求其二进制表示中"1"的个数,要求算法的执行效率尽可能高. 就像书中给我们说的一样,我们一般人可能想到的解决方法如下 int countOne(int n){ int count=0; while(n){ if(n%2==1){ cou

求100内质数的个数

// 求100内质数的个数 非容斥 #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<cstring> using namespace std; int n,sum; int main() { scanf("%d",&n); for(int i=1;i<=

Acdream1084 寒假安排 求n!中v因子个数

题目链接:点击打开链接 寒假安排 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 128000/64000 KB (Java/Others) SubmitStatistic Next Problem Problem Description 寒假又快要到了,不过对于lzx来说,头疼的事又来了,因为众多的后宫都指望着能和lzx约会呢,lzx得安排好计划才行. 假设lzx的后宫团有n个人,寒假共有m天,而每天只能跟一位后宫MM约会,并且由于后宫

求二叉树第K层的节点个数+求二叉树叶子节点的个数

size_t _FindLeafSize(Node* root)     //求二叉树叶子节点的个数    {        //static size_t count = 0;        if (root == NULL)            return 0; if (root->_left == NULL&&root->_right == NULL);        return 1; return _FindLeafSize(root->_right) +

hdu 1856 求集合里元素的个数 输出最大的个数是多少

求集合里元素的个数 输出最大的个数是多少 Sample Input41 23 45 61 641 23 45 67 8 Sample Output42 1 # include <iostream> 2 # include <cstdio> 3 # include <cstring> 4 # include <algorithm> 5 # include <cmath> 6 # include <queue> 7 # define LL

hduoj 1077 Catching Fish 求单位圆最多覆盖点个数

Catching Fish Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1217    Accepted Submission(s): 466 Problem Description Ignatius likes catching fish very much. He has a fishnet whose shape is a c

编程之美-02数字之魅-求二进制数中1的个数

题目:求二进制数中 1 的个数 对于一个字节(8bit)的无符号整型变量,求其二进制表示中"1"的个数,要求算法的执行效率尽可能地高. 解法一:移位->判断->累计 解法二:除2->判断->累计 解法三:v &= (v -1)需要掌握 ? 2 3 4 5 6 7 8 int num = 0; while(v) {     v &= (v -1);     num++; } return num; ? 2   解法四:分支操作(swicth-cas

求数组中任意两个数之间所有数字的和

303. Range Sum Query - Immutable   求数组中任意两个数之间所有数字的和 QuestionEditorial Solution My Submissions Total Accepted: 37248 Total Submissions: 146945 Difficulty: Easy Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j),

算法题:求二进制位中0的个数

#include <iostream> using namespace std; //古有求二进制数中1的个数,今有求二进制中0的个数. int Grial(int x) { int count = 0; while (x + 1) { count++; x |= (x + 1); } return count; } int main() { cout << Grial(1) << endl; return 0; } //为了方便验证,我把求二进制数中1的个数也写下来.