zoukankan      html  css  js  c++  java
  • 洛谷P1307 数字反转

    题目描述

    给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

    输入输出格式

    输入格式:

    输入文件名为reverse.in 。

    输入共1 行,一个整数 N。

    输出格式:

    输出文件名为reverse.out 。

    输出共1行,一个整数,表示反转后的新数。

    输入输出样例


    输入样例#1:

    123

    输出样例#1:

    321


    输入样例#2:

    -380

    输出样例#2:

    -83


    说明

    数据范围

    -1,000,000,000≤ N≤ 1,000,000,000 。

    noip2011普及组第一题


    WriteUp:



    参考AC代码:

    用队列进行输出:

    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    #include <cmath>
    #include <queue>
    
    using namespace std;
    
    int main(void){
    	int a;
    	int flag = 0;
    	queue<int> que;
    	scanf("%d",&a);
    
    	if (a>0)
    	{
    		flag = 0;
    	}else if (a==0)
    	{
    		printf("0");
    		return 0;
    	}else{
    		flag = 1;
    		a = -a;
    	}
    
    	while (a!=0)
    	{
    		if (a%10==0 && que.size()==0)
    		{
    			a /= 10;
    			continue;
    		}
    		que.push(a%10);
    		a /= 10;
    	}
    
    	if (!flag)
    	{
    		while (!que.empty())
    		{
    			printf("%d",que.front());
    			que.pop();
    		}
    	}else{
    		printf("-");
    		while (!que.empty())
    		{
    			printf("%d",que.front());
    			que.pop();
    		}
    	}
    	return 0;
    }


    使用数字反转公式(简单):

    #include <cstdio>
    #include <iostream>
    #include <cmath>
    #include <cstdlib>
    
    using namespace std;
    
    int main(void)
    {
    	int num;
    	int ans = 0;
    	scanf("%d",&num);
    
    	//reverse process begin
    
    	while(num){
    		ans *= 10;
    		ans += num%10;
    		num /= 10;
    	}
    
    	//end
    
    	printf("%d",ans);
    	return 0;
    }



  • 相关阅读:
    BZOJ 1008: [HNOI2008]越狱
    BZOJ 1007: [HNOI2008]水平可见直线
    BZOJ 1005: [HNOI2008]明明的烦恼
    【LibreOJ10121】与众不同(RMQ,二分)
    【NOIP模拟】数字对(RMQ,二分)
    【POJ3264】Balanced Lineup(RMQ)
    【JZOJ4857】Tourist Attractions(Bitset)
    【BZOJ2330】糖果(差分约束系统,强连通分量,拓扑排序)
    C++对拍数据生成
    C++字符串读入
  • 原文地址:https://www.cnblogs.com/csnd/p/12897084.html
Copyright © 2011-2022 走看看