【发布时间】:2013-05-27 09:46:45
【问题描述】:
一个数字的通用根被定义为一个数字的数字之和,直到我们得到一个数字。 例如:
456 的一般根:4 + 5 + 6 = 15,因为 15 是两位数,所以 1 + 5 = 6
所以,456 的一般根 = 6
我通过递归添加数字的数字来解决这个问题,直到获得一个数字并且程序运行良好。我在网上搜索并找到了一个我无法理解的非常小的解决方案:
#include<stdio.h>
int main()
{ int n,x;
printf("Enter no");
scanf("%d",&n);
printf("Generic root: %d",(x=n%9)?x:9);
return 0;
}
我无法理解三元运算符在这里的工作原理!?它如何计算一个数字的通用根
【问题讨论】:
-
或者可以定义为 n mod 9。(三元运算符修复了 n % 9 == 0 时的情况)
-
表示 (x=n%9) != 0 ? x : 9
-
我认为 OP 已经弄清楚了
(x=n%9)?x:9在 C 中的含义。OP 可能正在研究这条线是如何计算根的,换句话说,OP 正在寻找这个定理的证明。
标签: c