华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1415|回复: 7
打印 上一主题 下一主题

P1307 数字反转

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
楼主
发表于 2018-5-13 11:21:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://www.luogu.org/problemnew/show/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普及组第一题
回复

使用道具 举报

3

主题

50

帖子

365

积分

中级会员

Rank: 3Rank: 3

积分
365
沙发
发表于 2018-5-25 22:40:48 | 只看该作者
  1. #include <iostream>
  2. using namespace std;
  3. long n;
  4. int main()
  5. {
  6.     cin>>n;
  7.     if(n==0)
  8.         cout<<0<<endl;
  9.     else
  10.     {
  11.         if(n<0)
  12.         {
  13.             cout<<'-';
  14.             n=-1*n;
  15.         }
  16.         while(n%10==0)
  17.             n/=10;
  18.         while(n)
  19.         {
  20.             cout<<n%10;
  21.             n/=10;
  22.         }
  23.     }
  24.     return 0;
  25. }
复制代码
回复 支持 反对

使用道具 举报

50

主题

215

帖子

619

积分

高级会员

Rank: 4

积分
619
板凳
发表于 2018-7-7 14:53:06 | 只看该作者
  1. #include<iostream>
  2. #include<cstdio>
  3. using namespace std;
  4. char s[20],k[20];
  5. int i,j,m=0,n=0;
  6. int main()
  7. {
  8.     cin>>s;
  9.     while(s[j]!=0)j++;
  10.     if(s[0]=='-')
  11.     {
  12.         for(i=0; i<j-1; i++)
  13.         k[i]=s[j-i-1];
  14.         n=0;
  15.         while(k[n]=='0')n++;
  16.         cout<<"-";
  17.         for(i=n;i<j-1;i++)
  18.         cout<<k[i];
  19.     }
  20.     else
  21.     {
  22.         for(i=0; i<j; i++)
  23.         k[i]=s[j-i-1];
  24.         n=0;
  25.         while(k[n]=='0')n++;
  26.                 if(n==j)cout<<"0";
  27.                 else for(i=n;i<j;i++)
  28.                 cout<<k[i];
  29.     }
  30.     return 0;
  31. }
复制代码
回复 支持 反对

使用道具 举报

14

主题

106

帖子

317

积分

中级会员

Rank: 3Rank: 3

积分
317
地板
发表于 2018-7-8 16:49:19 | 只看该作者
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. int l,start,i;
  5. string s;
  6. int main()
  7. {
  8.     cin>>s;l=s.length();
  9.     if(s[0]=='-') {cout<<'-';start=1;}
  10.     while(s[l-1]=='0') {l--;}
  11.     for(i=l-1;i>=start;i--) cout<<s[i];
  12.     return 0;
  13. }
复制代码
回复 支持 反对

使用道具 举报

3

主题

50

帖子

365

积分

中级会员

Rank: 3Rank: 3

积分
365
5#
发表于 2018-8-10 19:34:45 | 只看该作者
标准程序:#include<iostream>
using namespace std;
int n,r,m;
int main()
{
    cin>>n;
    while(n)
    {
        r=n%10;
        m=m*10+r;
        n/=10;
    }
    cout<<m;
}
回复 支持 反对

使用道具 举报

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
6#
 楼主| 发表于 2018-8-10 21:10:38 | 只看该作者
楼上吴同学很好做了不少的题目,但是1、 请加上 m=0   2、请用code模式发帖。
回复 支持 反对

使用道具 举报

9

主题

158

帖子

470

积分

华一学生

积分
470
QQ
7#
发表于 2018-8-25 16:48:03 | 只看该作者
  1. #include <iostream>
  2. using namespace std;
  3. long long n;
  4. int main()
  5. {
  6.     cin>>n;
  7.     if(n==0) cout<<0;
  8.     else
  9.     {
  10.         if(n<0)cout<<'-',n=-n;
  11.         while(!(n%10)) n/=10;
  12.         while(n){cout<<n%10;n/=10;}
  13.     }
  14.     return 0;
  15. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 02:20 , Processed in 0.173423 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表