zoukankan      html  css  js  c++  java
  • sdut oj 2218 Give Me an E

    http://acm.sdut.edu.cn/web/problem.php?action=showproblem&problemid=2218

    好像也有点像模拟,当然这是看的解题报告。深刻感觉到string功能的强大,用起来真的很方便

    题目就是把给定的那个数转换成20进制的数来确定每一位的数字,因为从 0 ~ 100 就有20个不带e的

     1 #include <iostream>
    2 #include <string>
    3 using namespace std;
    4 string digits[] = {"00", "02", "04", "06", "30", "32", "34", "36", "40", "42", // 0~100之间20个不带e的数字
    5 "44", "46", "50", "52", "54", "56", "60", "62", "64", "66"};
    6 string zeroes[] = {"", "0", "0", "0", "0", "0", "0", "0000000", "0"}; //数字后加零用的,注意到题目给的那个数里,有两个单词是
    7 // 单词 septillion 和 sextillion 是带e的,所以要控制零的个数
    8 int main()
    9 {
    10 int n;
    11 cin >> n;
    12 while (n > 0)
    13 {
    14 string ans = "";
    15 int k=0;
    16 while (n > 0)
    17 {
    18 int i = n%20;
    19 ans = digits[i] + zeroes[k] + ans;
    20 n /= 20;
    21 k++;
    22 }
    23 while (ans[0] == '0') // 去除前导零。str.substr(n,m)的作用就是取出从第n个字符开始到第m个字符的一个连续串
    24 ans = ans.substr(1,ans.length());
    25 k=ans.length()-3;
    26 while (k>0)
    27 {
    28 ans = ans.substr(0,k)+","+ans.substr(k, ans.length()); //从后先前三个以为三个一位的叫小数点
    29 k -= 3;
    30 }
    31 cout << ans << endl;
    32
    33 cin >> n;
    34 }
    35 return 0;
    36 }
  • 相关阅读:
    Java_JAVA6动态编译的问题
    Java_动态加载类(英文)
    Java_Java Compiler 应用实例
    Java_关于App class loader的总结
    Java_动态加载
    Java_Java SE6调用动态编译
    python捕获Ctrl+C信号
    python使用协程并发
    python使用多进程
    python使用多线程
  • 原文地址:https://www.cnblogs.com/fxh19911107/p/2404706.html
Copyright © 2011-2022 走看看