①哀求
将正整数或负整数
涉及三个变量,
n是原数,
m用于储存提取的个位数,
y用于储存重新组合的逆序数。
~
②定义函数
#include< stdio.h>
int fun(int n)
{int m,y} ;
/给y赋初值,组合数在组合之前为0。/
y=0;
/给m赋初值,将原数n的绝对值赋值给m。
我试了,也可以直接m=n,删除y=(n>=0)?y:-y,结果一样有负号,绝对值详细还有什么用,等待大神解答。/
if(n>=0)m=n;
else m=-n;
/当m不为0时,循环连续。
当m为0时,即提取到只剩一位数时,m=m/10=0,循环结束。/
while(m!=0)
{y=y10+m%10;
/提取个位:m%10。
已经提取个位升为十位:y乘10。
逆序组合数:y。/
m=m/10;}
/降位提取个位:m/10
不断除10取整,屏蔽个位;
不断将十位降为个位,再提取;
直到只剩一位数,循环结束。/
y=(n>=0)?y:-y;
/将负数的负号规复。/
return y;
}
③主函数
{int m1,m2;
scanf("%d%d",&m1,&m2);
printf("%d的逆序是%d\t",m1,fun(m1));
printf("%d的逆序是%d\t",m2,fun(m2));
return 0;
}
④思路整理
1.输入原数:n
2.求绝对值:m=|n|
3.提取个位:m%10
4.逆序组合:y=y10+m%10
5.高位降位:m/10
6.规复负号:y=(n>=0)?y:-y