手动输入是对的,但测试点一个都过不了(C)
查看原帖
手动输入是对的,但测试点一个都过不了(C)
1153715
23012859ex楼主2023/12/28 21:50
#include<stdio.h>
int main()
{
    long int N;
    scanf("%ld",&N);
    if(N==0)
    {
        printf("%ld",N);
        return 0;
    }

    //先判断这个数有几位
    int count;
    long int number=N;
    for(int i=0;number!=0;i++)
    {
        number=number/10;
        count++;
    }

    //先对0进行判断
    while(N%10==0)
    {
        count--;
        N=N/10;
    }

    //负数情况
    int flag=0;
    if(N<0)
    {
        flag=1;
        N=0-N;
    }

    //进行反转
    for(int i=1;i<=count/2;i++){
        int n=1,m=1;
        for(int j=0;j<i;j++)
        n*=10;
        for(int j=0;j<(count-i);j++)
        m*=10;
        N=N+(N%n/(n/10))*m-N%n/(n/10)*(n/10)+(N/m%10)*(n/10)-N/m%10*m;
   }

    //负数情况
    if(flag==1) N=0-N;

    printf("%d",N);
    return 0;
}
2023/12/28 21:50
加载中...