(MATLAB) 请参见 https(https)://万维网.研究门.网/轮廓/塞扎伊_阿塔/出版/325391480_MATLAB软件_代码_-_退换商品_数_属于_信件_在里面_这个_土耳其_名称_属于_n个_不包括_空格_和_连字符/数据/5b0aa4f50f7e9b1ed7f860de/一.米
%对于给定的非负整数n,返回土耳其名称n中的字母数,不包括空格和连字符。
%适用于0≤n≤10^83
函数c=a(n)
如果n==0
c=5;
其他的
数字=楼层(log10(n))+1;
三重冲刷=[0 3 6 6 7 9 10 9 8 8 10 11 11 11 12 12 13 11 13 14 16 14];
c=0;
i=1时:数字;
b(i)=mod(地板(n/(10^(i-1))),10);
结束
对于j=1:数字;
如果mod(j,3)==1
如果(b(j)==1)|(b(j)==2)|
c=c+3;
结束
如果(b(j)==3)
c=c+2;
结束
如果(b(j)==4)|
c=c+4;
结束
如果(b(j)==8)||(b(j)==9)
c=c+5;
结束
结束
如果mod(j,3)==2
如果(b(j)==1)
c=c+2;
结束
如果(b(j)==3)|
c=c+4;
结束
如果(b(j)==2)
c=c+5;
结束
如果(b(j)==6)||(b(j)==7)||
c=c+6;
结束
结束
如果mod(j,3)==0
如果(b(j)==1)
c=c+3;
结束
如果(b(j)==2)||(b(j)==5)
c=c+6;
结束
如果(b(j)==3)
c=c+5;
结束
如果(b(j)==4)|
c=c+7;
结束
如果(b(j)==8)||(b(j)==9)
c=c+8;
结束
结束
结束
三元组=celi(数字/3);
对于i=1:三元组-1;
如果总和(b([(3*(i-1)+1)(3*,i-1)+3)])>0
c=c+三元积分(i);
结束
结束
如果总和(b([(3*(三位数-1)+1)位])>0
c=c+三重冲刷(三重);
结束
如果地板(n/1000)==1
c=c-3;
结束
结束
%塞扎伊·阿塔2018年5月26日