题目如上↑
a>=0部分的替换挺简单,不多赘述,代码如下:
c=a%10;
switch(c)//c为上方a对10求整结果,即a的十位
{
case 0:
case 1:
case 2:
m=1;//十位为0,1,2则m=1
break;
case 3:
m=2;//十位为3则m=2
break;
case 4:
m=3;//十位为4则m=3
break;
case 5:
m=4;//十位为5则m=4
break;
default:
m=5;//十位为6及以上则m=5
break;
}
负数部分不用if难以区分出(由题可知若a为负数,则m恒为1)
我的思路(逆推)是(单就正负判断):
1.用switch区分正负;
2.将a对2取余(a%2)得出1和-1(需要a为奇数);
3.因此先判断a的奇偶性,若a为偶数则使其+1。
所以说判断a的正负的步骤如下:
1.判断a的奇偶性,若a为偶数则使其+1(变成奇