问题标题: 酷町堂:4510

0
0
已解决
胡景波
胡景波
中级光能
中级光能

位数问题4经验值:400

题目描述 Description

请你编写一个程序,计算出在所有的4位数中,有多少个数字中有偶数个数字3(0也是偶数)。

输入描述 Input Description

输出描述 Output Description

一个整数,表示符合条件的数字个数

样例输入 Sample Input

样例输出 Sample Output

#include<iostream>

using namespace std;

int main(){

int cnt=0,e=0;

for(int i=1000;i<=9999;i++){

int a=0,b=0,c=0,d=0;

a=i/1000%100;

b=i/100%10;

c=i/10%10;

d=i%10;

if(a==3)e++;

else if(b==3)e++;

else if(c==3)e++;

else if(d==3)e++;

if(e%2==0){

            cnt++;

}

a=0,b=0,c=0,d=0,e=0;

}

cout<<cnt;

return 0;

}


0
已采纳
蔡乐毅
蔡乐毅
高级光能
高级光能

这道题用枚举太麻烦了

这样算

a[i]->i位数3的个数是偶数的

b[i]->i位数3的个数是奇数的

递推

递推公式:a[i]=a[i-1]*9+b[i-1],b[i]=b[i-1]*9+a[i];

cout<<a[4];

边界:a[1]=8,b[1]=1

0
蔡乐毅
蔡乐毅
高级光能
高级光能

按你这个思路的话

不要用else if

直接if就行了

 

我要回答