其实很难描述:
我想实现一种算法,该算法可以逐个比较两个给定整数/数字(具有相同“长度”)的相同位置的数字(当我在基于 10 的系统中进行计算时,它是相同的“十的幂”) )。它应该返回平等等级,如下所示:
- 4491 和 1020 = 0
- 4491 和 4123 = 1
- 4491 和 4400 = 2
- 4491 和 4493 = 3
- 4491 和 4491 = 4
- 4491 和 4091 = 1
我不想根据字符串比较进行计算,因为我将在更大的场景中进行计算:)
public static int Compare(int i1, int i2)
{
int result = 0;
while(i1 != 0 && i2 != 0)
{
var d1 = i1 % 10;
var d2 = i2 % 10;
i1 /= 10;
i2 /= 10;
if(d1 == d2)
{
++result;
}
else
{
result = 0;
}
}
if(i1 != 0 || i2 != 0)
{
throw new ArgumentException("Integers must be of same length.");
}
return result;
}
注意:它不处理负整数
更新:问题更新后修复
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)