1005. Spell It Right (20)
来源:互联网 发布:java jdk tools.jar 编辑:程序博客网 时间:2024/05/17 07:20
1. 原题链接
1005. Spell It Right (20)
2. 理解题目
输入一个小于
10100 的非负整数,求出各位数字和,并用英文一次输出和的各位数字;
3. 解题思路
[思路1]
由于输入的数字范围太大,所以只能按照字符/字符串输入;为了方便求和,可以按照字符依次输入,然后求和;为了方便输出对应的英文,所以可以先用一个char二维数组进行打表;将数字和对应的英文存储好;现在的问题是如何从高位开始依次读取数字?这里采用的方法是,先将数字通过sprintf函数转化为字符串保存,然后就可以通过下标从头开始访问每个字符,转化为对应的数字了。
4. 注意点
sprintf用于将数字等格式转化为字符串(char数组形式)存储;sscanf用于从字符串(char数组形式)中提取出数字等格式的内容;头文件就是<stdio.h>
4. AC代码
#include<cstdio>#include<cstring>char a[10][6]={"zero","one","two","three","four","five","six","seven","eight","nine"};int maxn=1000;//最大和为100个9==900int main(){ char tmp; int sum; while(~scanf("%c",&tmp)&&tmp!='\n'){ sum+=tmp-'0'; } char ans[maxn];//存储sum转化为str的结果 sprintf(ans,"%d",sum);//sscanf从char数组中按不同格式读取;sprintf按照不同格式读入char数组 int len=strlen(ans); for(int i=0;i<len;i++){ if(i==0) printf("%s",a[ans[i]-'0']); else printf(" %s",a[ans[i]-'0']); }}
阅读全文
0 0
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 1005. Spell It Right (20)
- 如何取得指定的int型数据中某一位的二进制值(1还是0)
- 数据查找算法---顺序查找、二分法查找、二叉树查找、hash查找
- bash shell计算时间差
- 交叉编译 ncurses5.9
- Oculus Connect 4 演讲——留住用户和建立联系(视频) | 【翻译】
- 1005. Spell It Right (20)
- Java变量跟标识符的概念
- 使用HttpURLConnection调用webservice接口
- composer中国镜像
- ==和is的区别
- NOIP 模拟题 国际跳棋
- js 动态根据后台接受的Map<String,String>参数 动态增加参数input框
- 大势未成,画风突变,又一家共享充电宝企业倒闭
- Linux——传输