#include "stdio.h"
#include <iostream>
#include "string"
#include "math.h"
using namespace std;
int count_1(int x)
{
int count=0;
for(int i=10;i<=x;i*=10)
if(x/i>=1)
count++;
return count;
}
int count_2(int c,int x)
{
int temp=1;
int y;
for(int i=1;i<=c;i++)
temp=temp*10;
y=x/temp;
return y;
}
int count_3(int x)
{
for(int i=10;i<=x;i*=10)
{
if((x%i)==((x/10)%i))
return 2;
if((x/i)==0)
return 1;
return 1;
}
}
int main()
{
int x;
while(cin>>x && x>=0 && x<=2147483647)
{
while(x>1)
{
int a=(count_1(x));
int b=(count_2(a,x));
if(count_3(x)>1)
cout<<"零";
if(a>=8)
if(a>=8)
{
if(b==0)
cout<<"零";
if(b==1)
cout<<"壹";
if(b==2)
cout<<"貳";
if(b==3)
cout<<"参";
if(b==4)
cout<<"肆";
if(b==5)
cout<<"伍";
if(b==6)
cout<<"陸";
if(b==7)
cout<<"柒";
if(b==8)
cout<<"捌";
if(b==9)
cout<<"玖";
if(a==11)
cout<<"仟";
if(a==10)
cout<<"佰";
if(a==9)
cout<<"拾";
}
if(a==8)
cout<<"億";
if(a>=4)
{
if(b==0)
cout<<"零";
if(b==1)
cout<<"壹";
if(b==2)
cout<<"貳";
if(b==3)
cout<<"参";
if(b==4)
cout<<"肆";
if(b==5)
cout<<"伍";
if(b==6)
cout<<"陸";
if(b==7)
cout<<"柒";
if(b==8)
cout<<"捌";
if(b==9)
cout<<"玖";
if(a==7)
cout<<"仟";
if(a==6)
cout<<"佰";
if(a==5)
cout<<"拾";
}
if(a==4)
cout<<"萬";
if(a<=3)
{
if(b==0)
cout<<"零";
if(b==1)
cout<<"壹";
if(b==2)
cout<<"貳";
if(b==3)
cout<<"参";
if(b==4)
cout<<"肆";
if(b==5)
cout<<"伍";
if(b==6)
cout<<"陸";
if(b==7)
cout<<"柒";
if(b==8)
cout<<"捌";
if(b==9)
cout<<"玖";
if(a==1)
cout<<"拾";
if(a==2)
cout<<"佰";
if(a==3)
cout<<"仟";
if(a<=3 && b==0)
cout<<"零";
}
int k=1;
for(int i=1;i<=a;i++)
k=k*10;
x=x%k;
}
}
return 0;
}
以上是我的程式....
我是新加入的...熊熊看到下列....下了我一大跳...
執行時發生錯誤 (SIGFPE)(8)!!
可能原因包含溢位或者除以0的問題
sh: line 1: 25884 浮點數出錯
需要用到浮點數 0.0
還是我的想法哪裡有錯嗎? 我是用VISUAL C++所以INCLUDE中某行會變成"STDAFX.H"
可是之前變換成這樣都不曾問題阿 = =
實在是因為摸了這題目摸了好久 只好跑來問問前輩們....