数字反转问题

来源:互联网 发布:算法设计技巧与分析 编辑:程序博客网 时间:2024/06/09 14:26

1,000,000,000 ≤ N ≤ 1,000,000,000 

样例:

输入:-290

输出:-92

输入:900000000

输出:9


#include <stdio.h>#include <stdlib.h>int main(){    int n,i,m,flag;    scanf("%d",&m);    if(m>0)    {        flag=0;        n=m;    }    if(m==0)    {        printf("%d",m);        return;    }    if(m<0)    {        flag=1;        n=-m;    }    int head,tail;    int a[11];    int b[11];    head=1;    tail=1;    while(n>0)    {        a[tail]=n%10;        n=n/10;        tail++;    }    while(a[head]==0)    {        head++;        if(a[head]!=0)        {            break;        }    }    int num=tail-head;    int j=1;    while(head!=tail)    {        b[j]=a[head];        head++;        j++;    }    /*for(i=1;i<=num;i++)    {        printf("%d",b[i]);    }*/    int c=0;    int in=1;    for(i=num;i>=1;i--)    {        c=c+b[i]*in;        in=in*10;    }    if(flag==0)    {        printf("%d",c);    }    if(flag==1)    {        printf("%d",-c);    }    getchar();getchar();    //system("pause");    return 0;}

其中,记录输入整数位数并保存在数组可用以下方法实现:

while(n>0)    {        a[tail]=n%10;        n=n/10;        tail++;    }

使用简单的队列。

0 0
原创粉丝点击