题目描述
小乐乐喜欢数字,尤其喜欢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; }可能有考虑不全的情况,望指正。