用matlab编程实现将数字“翻译”成英文

本文介绍了一种使用Matlab编程将数字转换成英文的方法。通过将数字分解为各个位数并映射到预设的英文数组,实现了数字的英文表达。文章提供了伪代码和实际代码示例。

用matlab编程实现将数字“翻译”成英文

算法设计的一次实验:
题目:用matlab编程实现将数字“翻译”成英文用matlab编程实现将数字“翻译”成英文。如:35706“翻译”成three-five-seven-zero-six。
【算法设计】:
1) 编号一般位数较多,可按长整型输入和存储。
2) 将英文的“zero——nine”存储在数组中,对应下标为0——9。这样无数值规律可循的单词,通过下标就可以方便存取、访问了。
3) 通过求余、取整运算,可以取到编号的各个位数字。用这个数字作下标,正好能找到对应的英文数字。
4)考虑输出翻译结果是从高位到低位进行的,而取各位数字,比较简单的方法是从低位开始通过求余和整除运算逐步完成的。所以还要开辟一个数组来存储从低位到高位翻译好的结果,并记录编号的位数,最后倒着从高位到低位输出结果。
【伪代码实现】
main( )
{int i,a[10], ind; long num1,num2;
char eng[10][6]={“zero”,”one”,”two”,”three ”,” four”,
” five”,”six”,”seven”,“eight”,”nine”};
print(“Input a num”);
input(num1); num2=num1; ind =0;
while (num2<>0)
{a[ind]=num2 mod 10; ind= ind +1; num2=num2/10; }
print(num1, “English_exp:”, eng[a[ind-1]]);
for( i=ind-2;i>=0;i=i-1)
print(“-”,eng[a[i]]);
}

%author Canlong
charNum = {'zero','one','two','three','four','five','six','seven','eight','nine'};
num = 1570232324343232434;
remNum =[] ;
i=0;
%取各个数字
while floor(num)~=0
i=i+1;
remNum(i) = mod(num,10);
num = floor(num/10);
end
%取出数组中的元素
for j=i:-1:1
   index = remNum(j) + 1;
   fanyi = charNum{index};
   fprintf('%s',fanyi)
   if j~=1
     fprintf('-')
   end
end
disp(' ');
问题及总结

如果是太大的整数目前还不能实现翻译,会报错,后期会将num转化为大整数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值