题目描述
小乐乐喜欢数字,尤其喜欢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号