问题标题: 1147请教

0
0

0
已采纳
杜天泽
杜天泽
新手守护
新手守护
if n[i]='0' then flag:=true
        else
        begin
            if flag then 
            begin 
                write('0');
                flag:=false;
            end;
            write(n[i],p[length(n)-i+1]);
        end;
0
0
朱智霖
朱智霖
新手守护
新手守护

f
 

for i:=1 to length(s) do
    begin
        if s[i]<>'0' then write(s[i]);
        if s[i]<>'0' then
        begin
            if i=length(s)-1 then write('shi');
            if i=length(s)-2 then write('bai');
            if i=length(s)-3 then write('qian');
            if i=length(s)-4 then write('wan');
            if i=length(s)-5 then write('shiwan');
        end;
        if s[i]='0' then b:=false;
        if (not b)and(i<>length(s))and(s[i+1]<>'0')or(length(s)=1)and(s[1]='0') then
        begin
            write('0');
            b:=true;
        end;
    end;

 

0
朱宗晔
朱宗晔
初级光能
初级光能

 核心部分

if(n == 0) cout<<0;
    else if(n == 100000) cout<<"1shiwan";
    else{
        while(n){
            i++;
            a[i] = n%10;
            n /= 10;
        }
    for(i = i;i >= 1;i--){
        if(a[i] != 0){
            if(flag == true){
                    cout<<0;
                    flag=false;
                }
                cout << a[i] << ch[i];
            }
            else flag = true;
        }
    }
string ch[10]{"","","shi","bai","qian","wan"};

 

0
许若谷
许若谷
新手守护
新手守护

好久没碰pascal了,经给pascal的思路,代码自己思考:

先分解(例:输入数据有多少100,多少10)


然后用case大法,或者如果你愿意的话,一个一个打if也可以,后者较简单

0
0
杜天泽
杜天泽
新手守护
新手守护
        if n[i]='0' then flag:=true
        else
        begin
            if flag then 
            begin 
                write('0');
                flag:=false;
            end;
            write(n[i],p[length(n)-i+1]);
        end;
0
0
徐云皓
徐云皓
新手天翼
新手天翼

用if循坏嵌套,考虑到10万位,再定义一个flag判断

0
0
王梦飞
王梦飞
新手守护
新手守护

定义数组

string a[]={"wan","qian","bai","shi",""};
for(int i=0;i<str.length();i++)
    {
        if(str[i]<='9'&&str[i]>='1')
        {
            ????//自己写
        }else if(str[i+1]<='9'&&str[i+1]>='1')
        {
             ????//自己写
        }
    }
   

 

0
谢其桦
谢其桦
资深守护
资深守护

if(n == 0) cout<<0;

 

else if(n == 100000) cout<<"1shiwan";

 

else{

 

while(n){

 

i++;

 

a[i] = n%10;

 

n /= 10;

 

}

 

for(i = i;i >= 1;i--){

 

if(a[i] != 0){

 

if(flag == true){

 

cout<<0;

 

flag=false;

 

}

我要回答