列表

详情


BC45. 小乐乐改数字

描述

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

输入描述

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

输出描述

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

示例1

输入:

222222

输出:

0

示例2

输入:

123

输出:

101

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 276KB, 提交时间: 2021-02-04

#include <stdio.h>
int main(){
    int n,m=0,t,x,k;
    scanf("%d",&n);
    for(k=1;n!=0;k=k*10)
    {
        t=n%10;
        if(t%2==0) x=0;
        else x=1;
        m=x*k+m;
        n=n/10;
    }
    printf("%d",m);
    return 0;
    
}

C 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2021-03-02

#include<stdio.h>
#include<math.h>
int main()
{
    long long n=0;
    long long sum=0;
    int i=0;
    scanf("%lld",&n);
    while(n)
    {
        int m=n%10;
        if(m%2==1)
            m=1;
        else
            m=0;
        sum+=m*pow(10,i);
        i++;
        n/=10;
    }
    printf("%lld\n",sum);
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2020-11-21

#include <stdio.h>
#include <math.h>
int main()
{
    int n,i,m,s;
    scanf("%d",&n);
    for(i=0;i<9;i++)
    {
        m=n%10;
        if(m%2==0)
        {m=0;}
        else
        {m=1;}
        n=n/10;
        s=s+m*pow(10,i);
    }
    printf("%d",s);
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2021-02-25

#include <stdio.h>
#include <string.h>
#define N 11

int main(void)
{
    int i;
    char temp[N];
    int count = 0;
    long int number = 0L;
    
    scanf("%10s", temp);
    for (i = 0; i < strlen(temp); i++)
    {
        if (0 == (temp[i] - '0') % 2)
        {
            temp[i] = '0';
        }
        else
        {
            temp[i] = '1';
        }
    }
    for (i = 0; i < strlen(temp); i++)
    {
        number = number * 10 + (temp[i] - '0');
    }
    printf("%ld\n", number);
    
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2021-02-02

#include <stdio.h>
#include <math.h>
int main(){
    unsigned int n;
    scanf("%d", &n);
    int count = 0, a[10] = {0}; 
    //获取n的每一位数字和位数
    do{
        a[count++] = n%10;
        n /= 10;
    }while(n != 0);
    
    for(int i = count-1; i >= 0; i--){
        if(a[i]%2 == 0){
            a[i] = 0;
        }
        else{
            a[i] = 1;
        }
    }
    //将数组a[]中的数转换为一个整数
    int result = 0;
    for(int i = count-1; i >= 0; i--){
    result += a[i]*pow(10, i);
    }
    printf("%d", result);

    return 0;
}

上一题