码迷,mamicode.com
首页 > 其他好文 > 详细

1005. Spell It Right (20)

时间:2018-11-26 02:27:18      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:ios   技术   spell   spel   技术分享   vector   mes   while   math   

技术分享图片

分数只有20分,所以题目是很简单的。难点就是如何处理整形转化字符,以及字符转化整形的问题。

/* 题目:1005      */
/* 作者:ChanWunsam    */
/* 时间:2017.12.21    */
#include <cstdio>
#include <queue>
#include <vector>
#include <map>
#include <string>
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
    int i, j, sum, digit, num;
    char N[101], S[4];
    
    /* 计算数字 */
    cin>>N;
    sum=0;
    for(i=0; N[i]!=‘\0‘; i++)
    {
        sum+=N[i]-‘0‘;
    }
    
    /* 处理字符串转化为int类型 */ 
    i=0;
    num=0;
    digit=10;
    if(sum==0)              /* 处理特殊情况 */
        S[i++]=0+‘0‘;
    while(sum!=0)
    {
        num=sum%digit;
        sum/=digit;
        S[i++]=num+‘0‘;
    }
    S[i]=‘\0‘;      /* 如果这道题是单纯的转化问题,一定要加这句 */
    //cout<<S<<endl;
    
    /* 逆序输出 */
    for(j=i-1; j>=0; j--)
    {
        switch(S[j]-‘0‘)
        {
            case 0: cout<<"zero"; break;
            case 1: cout<<"one";  break;
            case 2: cout<<"two";  break;
            case 3: cout<<"three"; break;
            case 4: cout<<"four"; break;
            case 5: cout<<"five"; break;
            case 6: cout<<"six";  break;
            case 7: cout<<"seven"; break;
            case 8: cout<<"eight"; break;
            case 9: cout<<"nine"; break;
        }
        if(j)
            cout<<" ";
    }
    
    return 0;
}

时间复杂度没什么说的,这道题看不出差距。用string可能会再好一点?

技术分享图片


不过这道题也暴露了我的一些问题。由于完全靠自学,我不知道要从哪方面着手,只能按照一些大佬的方法来。像atoi()函数和itoa()函数按理来说应该是要掌握源码的,可惜我还不会。突然又想起学了这么久的C/C++,我却做不出哪怕一个小项目,也就是比不上一个大一新生。本打算现在就着手做一个小项目,但是临近期末了,压力是有点大的。不光怎样,先把本周的任务搞定了吧。

1005. Spell It Right (20)

标签:ios   技术   spell   spel   技术分享   vector   mes   while   math   

原文地址:https://www.cnblogs.com/ChanWunsam/p/10018223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!