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

    P1307 数字反转

    本题考查字符串的知识,但是我选择了不使用字符串,因为字符串较为繁琐,下面是我的题解:

     1 #include<cstdio>
     2 using namespace std;
     3 int main()
     4 {
     5   int x,y=0;
     6   scanf("%d",&x);//输入开始的数 
     7   while(x!=0)y=y*10+x%10,x/=10;//将x的每一位数倒序赋值给y 
     8   printf("%d
    ",y);//输出y值 
     9   return 0; 
    10 }

    因为洛谷上给的算法标签是字符串,我又重打了一遍代码:

     1 #include<bits/stdc++.h>//万能头文件
     2 using namespace std;
     3 string s1,s2;//定义两个字符串
     4 int len,f,s;//定义三个整型变量
     5 int main()
     6 {
     7     cin>>s1;//输入一个字符串
     8     len=s1.length();//读取这个字符串的长度
     9     if(s1[0]=='-')//如果是负数
    10     {
    11         s2[0]='-';//先确定符号是负号
    12         for(int i=1,j=len-1;i<len,j>=0;i++,j--)
    13             s2[i]=s1[j];//倒叙将字符串里面的每一个字符放进一个空字符串里作为最后的答案
    14     }
    15     else//否则,也就是正数
    16     {
    17         for(int i=0,j=len-1;i<len,j>=0;i++,j--)
    18             s2[i]=s1[j];//同上的操作
    19     }
    20     //然后进行输出
    21     if(s2[0]=='-')//如果是负数
    22     {
    23         cout<<'-';//先输出一个负号
    24         int sum=1;//这个变量是要去零的,因为负数的高位不能为零,看一下样例2就知道了
    25         while(s2[sum]=='0')
    26         sum++;//当字符为零时,计时器++,做到了去零的作用,当循环结束后说明找到了第一个不为零的数
    27         for(int i=sum;i<len;i++)//进行输出
    28         cout<<s2[i];
    29     }
    30     else//否则,也就是正数
    31     {
    32         for(int i=0;i<len;i++)
    33         {
    34             if(s2[i]=='0')
    35             f=1;
    36         }//这个循环是想确定这个字符串中是否有零
    37         if(f==0)//如果没有零
    38         {
    39             for(int i=0;i<len;i++)
    40             cout<<s2[i];//直接输出
    41         }
    42         else//否则,也就是有零
    43         {
    44             int sum=1;
    45             while(s2[sum]=='0')
    46             sum++;//同上的操作
    47             for(int i=sum;i<len;i++)
    48             cout<<s2[i];//然后再输出
    49         }
    50     }
    51     return 0;//宣告程序圆满结束
    52 }

    10行VS52行,字符串是真的长。

    不要在比赛里用万能头文件,

    别问,

    问就是暴零……

  • 相关阅读:
    3.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——下载文件
    rem实现手机页面自动缩放
    Git 常用命令
    使用 canvas+JS绘制钟表
    JS 操作数组的方法
    Node.js Request方法
    兼容浏览器的点击事件
    ES6知识点
    上传项目到github上
    JavaScript 编码风格
  • 原文地址:https://www.cnblogs.com/Kyriech-Francis/p/Answer_P1307.html
Copyright © 2011-2022 走看看