• hdu 1266 Reverse Number


    Reverse Number

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 5052    Accepted Submission(s): 2352


    Problem Description
    Welcome to 2006'4 computer college programming contest!

    Specially, I give my best regards to all freshmen! You are the future of HDU ACM! And now, I must tell you that ACM problems are always not so easy, but, except this one... Ha-Ha!

    Give you an integer; your task is to output its reverse number. Here, reverse number is defined as follows:
    1. The reverse number of a positive integer ending without 0 is general reverse, for example, reverse (12) = 21;
    2. The reverse number of a negative integer is negative, for example, reverse (-12) = -21;
    3. The reverse number of an integer ending with 0 is described as example, reverse (1200) = 2100.
     

     

    Input
    Input file contains multiple test cases. There is a positive integer n (n<100) in the first line, which means the number of test cases, and then n 32-bit integers follow.
     

     

    Output
    For each test case, you should output its reverse number, one case per line.
     

     

    Sample Input
    3
    12
    -12
    1200
     

     

    Sample Output
    21
    -21
    2100
    #include<stdio.h>
    #include<string.h>
    #define MAXN 10000
    
    char a[MAXN];     //定义字符数组 
    int main()
    {
        int t, n, i, len;
        int k;
        scanf("%d", &t);   
        while( t-- )
        {
            scanf("%s", &a);       //输入字符串                    
             len = strlen(a);
             
       for(k = len - 1; k >= 0; k--)
            {
                if(a[k] != '0')       //筛选,非零位部分a[k]   
                    break;
            }
            
            
         if(a[0] == '-')
            {
                printf("-");
                
                for(i = k; i >=1; i--) // 将k 相对应地 保存  在i中 
                        printf("%c", a[i]);//反转 
                        
                for(i = k + 1; i < len; i++)
                    printf("0");
            }
            
         else
            
            {
                for(i = k; i >=0; i--)
                    printf("%c", a[i]);
                for(i = k + 1; i < len; i++)
                    printf("0");
            }
            
            printf("
    ");
        }
        return 0;
    }
    View Code

    #include<stdio.h>
    #include<string.h>
    #define MAXN 10000

    char a[MAXN];     //定义字符数组
    int main()
    {
        int t, n, i, len;
        int k;
        scanf("%d", &t);  
        while( t-- )
        {
            scanf("%s", &a);       //输入字符串                   
             len = strlen(a);
            
       for(k = len - 1; k >= 0; k--)
            {
                if(a[k] != '0')       //筛选,非零位部分a[k]  
                    break;
            }
           
           
         if(a[0] == '-')
            {
                printf("-");
               
                for(i = k; i >=1; i--) // 将k 相对应地 保存  在i中
                        printf("%c", a[i]);//反转
                       
                for(i = k + 1; i < len; i++)
                    printf("0");
            }
           
         else
           
            {
                for(i = k; i >=0; i--)
                    printf("%c", a[i]);
                for(i = k + 1; i < len; i++)
                    printf("0");
            }
           
            printf(" ");
        }
        return 0;
    }

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        string s;
        while(n--)
        {
            cin>>s;
            int begin = 0,end,i,j;
            if(s[0] == '-')begin = 1;
           while(s[begin] == '0')begin++;
            end = s.size()-1;
            while(s[end] == '0')end--;
            reverse(s.begin()+begin,s.begin()+end+1);
            cout<<s<<endl;
        }
        return 0;
    }
    View Code

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        string s;
        while(n--)
        {
            cin>>s;
            int begin = 0,end,i,j;
            if(s[0] == '-')begin = 1;
           while(s[begin] == '0')begin++;
            end = s.size()-1;
            while(s[end] == '0')end--;
            reverse(s.begin()+begin,s.begin()+end+1);
            cout<<s<<endl;
        }
        return 0;
    }


     

  • 相关阅读:
    android编译时出现org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugJavaWithJavac'.错误
    jdk1.8中获取项目绝对路径和项目路径
    okhttp在https连接中出现java.net.ProtocolException: Expected ':status' header not present的解决办法
    mybatis+sqlserver中返回非自增主键
    华为手机不能连接android studio进行调试的解决办法
    android中service启动后台程序
    getContentLength() 指为 -1 的解决办法
    svn服务器搭建(windows)
    Caliburn.Micro 杰的入门教程3,事件和参数
    Caliburn.Micro 杰的入门教程1(翻译)
  • 原文地址:https://www.cnblogs.com/2014acm/p/3885489.html
Copyright © 2020-2023  润新知