题目描述

小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

输入描述:

	

输入包含一个整数n (0 ≤ n ≤ 109)

输出描述:

输出一个整数,即小乐乐修改后得到的数字。
示例1

输入

复制
222222

输出

复制
0
示例2

输入

复制
123

输出

复制
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;
}
可能有考虑不全的情况,望指正。