问题描述
完美偶数指的是,如果一个数本身是偶数,且这个数是偶数位的数,且这个数的各个位也是偶数,那么这个数就可以称为完美偶数;比如: 28 就是完美偶数,而 246就不是,因为 246 是一个 3 位数。
请你编程求出,从键盘读入的 𝑛 个数中,哪些数是完美的偶数,输出他们。
输入
第一行是一个整数 𝑛( 𝑛≤100 );
第二行是 𝑛 个整数(这些整数都是 1∼9999范围内的整数)。
输出
按顺序输出这 𝑛 个数中的完美偶数,每个数一行。
附代码:
#include<iostream>
using namespace std;
int main()
{
int n,digits,b,c=0;
cin>>n;
if(n<=100)
{
int arr[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
for(int j=0;j<n;j++)
{
b=arr[j];//这里将数组里的数据存放给b,是因为后面直接用数组里的数据操作会被清零
c=digits=0;//一个统计数组各个位是否位奇数;一个统计该数据的位数有多少位
while(b!=0) //重复执行下面的内容直到位数被除尽;
{
if(b%10%2!=0)//计算这个数的各个位是否能被2整除,如果余数不为0则说明这个数为奇数;
{
c++;
break; //只要发现有一个数字不能被2整除则可以跳出判断了
}
b/=10;
digits++;//每次这个数都整除10,除到位数被除完为0时,每除1位,统计数就+1
}
if(digits%2==0&&c==0)//如果位数为偶数且这个数的各个位数不存在奇数,则输出这个数据;
cout<<arr[j]<<endl;
}
}
return 0;
}