题目描述
小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。
输入描述:
输入包含一个整数n (0 ≤ n ≤ 109)
输出描述:
输出一个整数,即小乐乐修改后得到的数字。
示例2
输出
复制 101
思想是将输入的值每一位提取,并按照题目要求的处理方法完成处理后,用数组储存。
有特殊情况,222222的输出是0,使用sum统计每一位的和,特殊处理一下
代码如下:
#include<iostream>
using namespace std;
int main(){
long long n;
int a[15];
cin>>n;
int index=0;
long long r=0;
while(n){
r=(n%10&1)^0;//取出每一位,再与0异或就是题目要求的处理
n/=10;
a[index++]=r;
}
int f=0,sum=0;
for(int i=index-1;i>=0;i--){//倒叙输出,去除前导0
sum+=a[i];
if(a[i]==0&&f==0){
continue;
}
else {
f=1;
cout<<a[i];
}
}
if(!sum) cout<<0<<endl;//特殊情况
cout<<endl;
} 可能有考虑不全的情况,望指正。
京公网安备 11010502036488号