日期:2023-11-3
1、常规的逐位分离,求和或求积问题
一般会给固定的位数,让解题者按照位数利用%或\进行不同位置数字的提取。
2、遇到非常规问题,对于不限位数的整数的处理法则
(1)方法一:常规数组法,通过导入数组元素,逐位分离,运用高阶方法解决低阶问题,但值得注意的是,初次接触不限位数的逐位分离的大多数初学者,只拥有循环和判断语句的知识。在缺少对于数组知识的认知下,无法解决问题或是提出合理的程序架构。
(2)方法二:从个人最初对于此类问题的理解出发,我当时构想了一种循环嵌套switch语句实现了在缺乏数组知识下对不同位置数字的剥离和分离处理
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
int n;
scanf("%d", &n);
if (n == 0) {
printf("ling");
}
else {
if (n < 0) {
printf("fu ");
n *= -1;
}
int shi_n = 10;
while (n / shi_n > 0) {
shi_n *= 10;
}
shi_n /= 10;
while (shi_n >= 1) {
int num = n / shi_n;
n -= num * shi_n;
shi_n /= 10;
/*
int t=10;
while (n/t>0){
t=t*10;
}
t=t/10;
while (t>=1){
int n=n/t;
n=n-(n*t);
t=t/10;
*/
switch (num) {
case 1:
printf("yi");
break;
case 2:
printf("er");
break;
case 3:
printf("san");
break;
case 4:
printf("si");
break;
case 5:
printf("wu");
break;
case 6:
printf("liu");
break;
case 7:
printf("qi");
break;
case 8:
printf("ba");
break;
case 9:
printf("jiu");
break;
case 0:
printf("ling");
break;
}
if (shi_n > 0) {
printf(" ");
}
}
}
return 0;
}