zoukankan      html  css  js  c++  java
  • 百练 2973 Skew数 解题报告

    链接:http://poj.grids.cn/practice/2973/

    题目:

    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述
    在 skew binary表示中, 第 k 位的值xk表示xk*(2k+1-1)。 每个位上的可能数字是0 或 1,最后面一个非零位可以是2, 例如, 10120(skew) = 1*(25-1) + 0*(24-1) + 1*(23-1) + 2*(22-1) + 0*(21-1) = 31 + 0 + 7 + 6 + 0 = 44. 前十个skew数是 0、1、2、10、11、12、20、100、101、以及102。
    输入
    输入包含一行或多行,每行包含一个整数n。 如果 n = 0 表示输入结束,否则n是一个skew 数
    输出
    对于每一个输入,输出它的十进制表示。转换成十进制后, n 不超过 231-1 = 2147483647
    样例输入
    10120
    200000000000000000000000000000
    10
    1000000000000000000000000000000
    11
    100
    11111000001110000101101102000
    0
    
    样例输出
    44
    2147483646
    3
    2147483647
    4
    7
    1041110737
    

    代码:

     1 #include <iostream>
     2 #include <cstdlib>
     3 #include <cstdio>
     4 #include <cstring>
     5 using namespace std;
     6 const int MAX = 30;
     7 char chs[MAX];
     8 int main()
     9 {
    10     //freopen("F:\\input.txt","r",stdin);
    11     
    12     int sum,step;
    13     while(scanf("%s",chs) != EOF && strcmp(chs,"0\0"))
    14     {
    15         sum = 0;
    16         step = 2;
    17         for(int i = strlen(chs)-1; i >= 0; i--)
    18         {
    19             sum += (chs[i] - '0') * (step - 1);
    20             step *= 2;
    21         }
    22         
    23         cout<<sum<<endl;
    24     }
    25     return 0;
    26 }

    思路:

    1.结果使用int保存即可

    2.读入一定要用字符串读入,读入整数会无法精度

    3.利用step来做优化处理

  • 相关阅读:
    Smarty数学运算
    双引号里值的嵌入
    Smarty属性
    Smarty函数
    Smarty注释代码
    数据结构实验2——链表
    数据结构实验1——顺序表
    hdu 5459 Jesus Is Here
    hdu 5455 Fang Fang
    2018 多校6 hdu 6362 6370 6373
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3096183.html
Copyright © 2011-2022 走看看