zoukankan      html  css  js  c++  java
  • Project Euler Problem 17 Number letter counts

    Number letter counts

    Problem 17

    If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 + 3 + 5 + 4 + 4 = 19 letters used in total.

    If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used?


    NOTE: Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters. The use of "and" when writing out numbers is in compliance with British usage.


    C++:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    const int TWENTY = 20;
    const int HUNDRED = 28;
    const int ONE_THOUSAND = 29;
    
    string number[] = {"", "one", "two", "three",  "four", "five", "six", "seven", "eight", "nine",
        "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen",
        "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety", "hundred and", "one thousand"};
    
    int main()
    {
        int sum=0, sum2=0;
    
        // 1 - 19
        sum2 = 0;
        for(int i=1; i<=19; i++)
            sum2 += number[i].length();
        sum += sum2;
    
        // 20 - 99
        sum2 = 0;
        for(int i=20; i<=99; i++) {
            int d10 = i / 10, d0 = i % 10;
            sum2 += number[TWENTY + d10 - 2].length();
            if(d0 != 0)
                sum2 += number[d0].length();
        }
        sum += sum2;
    
        // 100 - 999
        sum2 = 0;
        for(int i=1; i<=9; i++) {
            sum2 += (number[i].length() + number[HUNDRED].length() - 1) * 100 - 3;
            sum2 += sum;
        }
        sum += sum2;
    
        // 1000
        sum += number[ONE_THOUSAND].length() - 1;
    
        cout << sum << endl;
    
        return 0;
    }




  • 相关阅读:
    vue从详情页回到列表页,停留在之前的tab上
    vue-touch监听手指左滑右滑事件
    vue事件代理
    vue通过ref获取组件渲染后的dom(this.$refs.xxxRef.$el)
    vue水印-第二种方法:通过指令
    # 有时候代码超时
    # 今天的leetcode1268又用上了二分搜索。
    # linux命令小常识
    # 大家好
    今天尝试配置maven的时候
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564003.html
Copyright © 2011-2022 走看看