C奇偶校验和之和的程序?
假设我们有一个长整数。我们必须找出奇数位数字之和与偶数位数字之和之间的差是否为0。位置从0(最左侧)开始。
例如,假设数字为156486。奇数位置和为(5+4+6)=15,偶数位置和为(1+6+8)=15,因此它们是相同的。
为了解决这个问题,我们可以使用两种不同的方式。第一种方法是从头到尾遍历表格并通过交替位置来求和,然后求差。下一个方法更简单,更有效。如果该数字可被11整除,则该差必须为0。换句话说,如果奇数位置数字之和与偶数位置数字之和相同,则该数字可被11整除。
算法
isDiffZero(n)
begin
if n is divisible by 11, then
return 1
else
return 0
end if
end示例
#include<stdio.h>
long isDiffZero(int n) {
if(n % 11 == 0){
return 1;
} else {
return 0;
}
}
main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
if(isDiffZero(n)) {
printf("Difference is zero");
} else {
printf("Difference is non zero");
}
}输出结果
Enter a number: 156486 Difference is zero