例如:"2012" 换算为2012 (两千零一十二)
C++版:
#include <cstdlib>
#include <iostream>
using namespace std;
int ctoi(char* c)
{
int num=0;
int key=0;
bool isNagative = false; //考虑负数的情况
if(*c == '-')
{
isNagative = true;
c++;
}
while(*c != '\0')
{
key = *c - '0';
num *= 10;
num += key;
c++;
}
if(isNagative)
{
return 0-num;
}
return num;
}
int main(int argc, char *argv[])
{
char* str="-2012";
cout<< ctoi(str) <<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Java版:
import java.util.Random;
public class agorithm {
public static void main(String arg[]){
String str = new String("-2012");
char[] str_array = str.toCharArray();
System.out.println(ctoi(str_array));
}
public static int ctoi(char[] c){
int num = 0;
int key = 0;
int start = 0;
boolean isNagative = false;
if(c[0]=='-'){
isNagative = true;
start = 1;
}
for(int i = start; i < c.length; i++){
key = c[i]-'0';
num *= 10;
num += key;
}
if(isNagative){
return 0-num;
}
return num;
}
}