hdu 5867 (一到一千的模拟题)
来源:互联网 发布:鼎金网络投教中心 编辑:程序博客网 时间:2024/04/25 13:35
Water problem
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 193 Accepted Submission(s): 129Problem Description
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 n (up to one thousand) inclusive were written out in words, how many letters would be used?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.
Input
There are multiple test cases. The first line of input contains an integer T, indicating the number of test cases.For each test case: There is one positive integer not greater one thousand.
Output
For each case, print the number of letters would be used.Sample Input
3
1
2
3Sample Output
3
6
11Author
BUPTSource
2016 Multi-University Training Contest 10
看道题的时候,就不淡定了,这是要考英语啊。
又大神两分钟就A掉了,敢问这题你是有模板吗?
没辙了,百度了一下,一到一千的英语。找规律吧。
交了一下,1A了。卧槽,这也行。
代码:
/*===============================================================* Copyright (C) 2016 All rights reserved.* * Filename: 1011.cpp* Author: gsh* Created_time:2016/8/18 星期四 12:08:33* Problem_tags: 细节* Problem_keyword:================================================================*/#include <bits/stdc++.h>typedef long long ll;typedef unsigned long long ull;using namespace std;int a[] = {3,3,5,4,4,3,5,5,4,3};//1~10int b[] = {6,6,8,8,7,7,9,8,8,6};//11~20int c[] = {3,6,6,5,5,5,7,6,6};//1.. /整十int h = 7;int work(int n){ if(n == 1000) {return 11;} if(n % 100 == 0) {return a[n/100-1] + h;} int sum = 0; if(n / 100 > 0) {sum += a[n/100 - 1] + h + 3; n %= 100;} if(n < 11) {sum += a[n-1];} else if(n < 21) {sum += b[n-11];} else { sum += c[n/10-1] + a[n%10-1]; } return sum;}int main(){#ifdef LOCAL freopen("1011.in","r",stdin); freopen("1011.out","w",stdout);#endif int t; cin >> t; while(t--) { int n; cin >> n; int ans = 0; for(int i = 1; i <= n; i++) ans += work(i); cout << ans << endl; } return 0;}
- hdu 5867 (一到一千的模拟题)
- 一千行MySQL学习笔记(一)
- 第九周项目一--求一千以内所有偶数的和(一)
- 第九周项目一 关于一千以内偶数的计算和(for 语句)
- HDU 1035 Robot Motion 简单模拟(挺有趣的一题)
- 敏捷开发一千零一问系列之三十一:敏捷开发与野路子的区别是什么?(一)
- 一千元的智慧
- 一千多年前的中国
- 一千元的智慧
- 一千元的智慧
- 一千以内的素数
- 一千一百一十一亿一千一百一十一万一千一百一十一
- HdU OJ 1107 武林 一只巨大的模拟
- HDU 1736(字符串模拟的水题)
- HDU 5071 Chat (神一般的模拟题)
- hdu 5938 Four Operations(复杂的模拟题)
- hdu-1013杭电耍花招,他给了一个长度为一千的数。。。
- HDU 5867 Water problem (模拟水题)
- BZOJ1635 [Usaco2007 Jan]Tallest Cow 最高的牛 数列差分
- oracle执行了shutdown某个实例之后,如何重新启动
- 【每周至少一篇 160819】最大子序列和问题的四种求法_Java
- Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程
- zookeeper运维管理
- hdu 5867 (一到一千的模拟题)
- clipBoardEvent, execCommand等粘贴板相关研究
- Cracer渗透测试网络培训第一期
- 早上学了一下java的随机数,下面把代码复制一下
- canvas的save与restore方法的作用
- 树上路径
- 可乐瓶盖问题
- oc学习之属性
- 【LintCode】第k大元素