C递归奇数索引位变化
C recursion even odd index digits change
我必须输入一个数字 n(不是数组),比方说 691234 它必须是 'even' 位数,输出应该是这样的:962143 -> 它移动了奇数索引与给定 number.If 的偶数索引我有 0612 输出将是 612.I 有一个代码,但它甚至不接近我需要做的,我尝试除以 100 并返回一个数字但是好像对我没什么用。
#include <stdio.h>
int f(int n){
if(n > 99){
int r = n % 100;
int ret = f(n / 100);
if(ret > 0)
return ret * 100 + r % 10 * 10 + r / 10;
else
return ret;
} else if(n > 9){
return n % 10 * 10 + n / 10;
} else {
return -1;
}
}
int change(int n){
int ret = f(n);
return ret > 0 ? ret : n;
}
int main(void){
int n;
printf("input number : ");
scanf("%d", &n);
printf("%d\n", change(n));
return 0;
}
我必须输入一个数字 n(不是数组),比方说 691234 它必须是 'even' 位数,输出应该是这样的:962143 -> 它移动了奇数索引与给定 number.If 的偶数索引我有 0612 输出将是 612.I 有一个代码,但它甚至不接近我需要做的,我尝试除以 100 并返回一个数字但是好像对我没什么用。
#include <stdio.h>
int f(int n){
if(n > 99){
int r = n % 100;
int ret = f(n / 100);
if(ret > 0)
return ret * 100 + r % 10 * 10 + r / 10;
else
return ret;
} else if(n > 9){
return n % 10 * 10 + n / 10;
} else {
return -1;
}
}
int change(int n){
int ret = f(n);
return ret > 0 ? ret : n;
}
int main(void){
int n;
printf("input number : ");
scanf("%d", &n);
printf("%d\n", change(n));
return 0;
}