zoukankan      html  css  js  c++  java
  • 2017网易秋招--5、数字翻转

    题目描述:

    对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
    如果 X = 123,则rev(X) = 321;
    如果 X = 100,则rev(X) = 1.
    现在给出整数x和y,要求rev(rev(x) + rev(y))为多少? 
    输入描述:
    输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。
     
     
    输出描述:
    输出rev(rev(x) + rev(y))的值
     
    输入例子:
    123 100
     
    输出例子:
    223
    思路:先求出数字包含的位数。然后按从个位往前求每一位;求出那一位需要*10的个数就是len-i-1个,然后求result
     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4  
     5 int Rev(int x)
     6 {
     7     int num = x;
     8     int len = 0;
     9     int c = 0;
    10     int result = 0;
    11     while(num)
    12     {
    13         num/=10;
    14         len++;
    15     }
    16     num = x;
    17     for(int i=0;i<len;i++)
    18     {
    19         c = num%10;
    20         for(int j=i+1;j<len;j++)
    21         {
    22             c*=10;
    23         }
    24         result += c;
    25         num/=10;
    26     }
    27     return result;
    28 }
    29 int main()
    30 {
    31     int x;
    32     int y;
    33     while(cin>>x>>y)
    34     {
    35         cout<<Rev(Rev(x)+Rev(y))<<endl;
    36     }
    37 }
  • 相关阅读:
    千拣万拣,拣个烂灯盏
    在JavaScript中控制链接的点击
    一条SQL语句
    Atlas与页面缓存冲突造成报错问题
    猴子他爹
    没有源代码也可以调试
    IC卡
    郭昶
    在js脚本中找到控件
    郭昶来到咱们学车场
  • 原文地址:https://www.cnblogs.com/qqky/p/6796028.html
Copyright © 2011-2022 走看看