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

字符串转换

时间:2015-04-23 17:29:52      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

1134: 字符串转换

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 1014  Solved: 579

SubmitStatusWeb Board

Description

输入一个以回车结束的字符串,它由数字和字母组成,请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以2输出。

Input

输入一个以回车结束的字符串,长度不超过100,由数字和字母组成。

Output

将转换后的整数乘以2输出,测试数据保证结果在int范围内。

Sample Input

sg987aa65t498

Sample Output

197530996

HINT

Source

思路:思路很简单,水题练习。就是我大数相乘的时候,sum[i-1]=sum[i-1]+sum[i]/10;与sum[i]=sum[i]%10;弄反了位置。。找了半天错误,以后写代码要注意细节
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
    char a[110],b[110];
    int lena,i,sum[200],k=0,g=199;
    memset(sum,0,sizeof(sum));
    cin>>a;
    lena=strlen(a);
     for(i=0;i<lena;i++)
     {
         if(a[i]>='0'&&a[i]<='9')
         {
            b[k++]=a[i];
         }
     }
     b[k]='\0';
    for(i=k-1;i>=0;i--)
    {
        sum[g]=sum[g]+(b[i]-'0')*2;
        g--;    
    }
    for(i=199;i>=1;i--)
    {
        if(sum[i]>=10)
        {
            sum[i-1]=sum[i-1]+sum[i]/10;
            sum[i]=sum[i]%10;
        }
    }
    int start=0;
    while(!sum[start] && start<199)
    {
        start++;
    }
    for(i=start;i<=199;i++)
        cout<<sum[i];
    cout<<endl;
    return 0;
}
/**************************************************************
    Problem: 1134
    User: CuiHuiling
    Language: C++
    Result: Accepted
    Time:0 ms
    Memory:1328 kb
****************************************************************/

字符串转换

标签:

原文地址:http://blog.csdn.net/zuguodexiaoguoabc/article/details/45223869

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