要求输入一串低于 10 位的数字,输出这串数字的中文大写
要求输入一串低于 10 位的数字,输出这串数字的中文大写
input:100 output:一佰 input:1001010 output:壹佰万壹仟零壹拾
C语言版:
1 #include <stdio.h> 2 #include <string.h> 3 4 void chineseDigits(char num[]); 5 int myAtoi(char num[], int len); 6 void move(char num[]); 7 8 char strNumber[][sizeof("中")] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾"}; 9 char numberOfWeight[][sizeof("中")] = {"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿"}; 10 11 int main(int argc, char const *argv[]) 12 { 13 char num[10] = ""; 14 do { 15 scanf("%9s", num); 16 if ( num[0] != '-' ) { 17 chineseDigits(num); 18 } 19 } while ( num[0] != '-'); 20 21 return 0; 22 } 23 24 void chineseDigits(char num[]) 25 { 26 while ( num[0] != '\0' ) { 27 if ( myAtoi(num, strlen(num)) > 0 ) { // C99 可以用 atoi(char *) 28 if ( num[0] == '0' ) { 29 if ( strlen(num) <= 4 ) 30 printf("%s", strNumber[num[0]-'0']); 31 } else { 32 printf("%s", strNumber[num[0]-'0']); 33 } 34 35 if ( num[0] > 0 || strlen(num) > 4 ) 36 printf("%s", numberOfWeight[strlen(num)-1]); 37 } 38 move(num); 39 40 while ( num[0] == '0' && num[1] == '0') { 41 move(num); 42 } 43 } 44 printf("\n"); 45 } 46 47 int myAtoi(char num[], int len) // 字符串-->数字 48 { 49 int number = 0; 50 for ( int i = 0; i < len; i++ ) { 51 if ( num[i] != '0' ) { 52 number = number * 10 + (num[i] - '0'); 53 } 54 } 55 return number; 56 } 57 58 void move(char num[]) // 挤掉最左边的那一个字符 59 { 60 int len = strlen(num); 61 for ( int i = 0; i <= len; i++ ) { 62 num[i] = num[i+1]; 63 } 64 }
JavaScript版:
1 var strNumber = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖','拾']; 2 var numberOfWeight = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿']; 3 4 var num = "10001"; 5 chineseNumber(num); 6 7 function chineseNumber( num ) { 8 var onum = num; 9 if ( onum == 0 ) { 10 print(strNumber[num[0]]); 11 return; 12 } 13 while ( num != '' ) { 14 if ( num > 0 ) { 15 if ( num[0] == 0 ) { 16 if ( num.length <= 4 ) 17 print(strNumber[num[0]]); 18 } else { 19 print(strNumber[num[0]]); 20 } 21 22 if ( num[0] > 0 || num.length > 4) 23 print(numberOfWeight[num.length-1]); 24 } 25 num = num.substring(1); 26 while ( num[0] == 0 && num[1] == 0) { 27 num = num.substring(1); 28 } 29 } 30 } 31 32 function print( s ) { 33 document.write(s); 34 }
分类:
C语言编程练习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App