C语言中如何表示一个整数中的每位数字包含于另一个整数中?

来源:百度知道 编辑:UC知道 时间:2024/06/21 02:38:46
比如说一个4位整数a 另一个3位整数b 三位整数中的每个数字b1 b2 b3都包含于a1 a2 a3 a4 中。是否可以用:
if(b1!=a1 || b1!=a2 || b1!=a3 || b1 != a4 )
continue;
.
.
.
来表示呢?
上面那个算法调不出来,可是可以用:
if(b1!=a1)
if(b1!=a2)
if(b1!=a3)
if(b1!=a4)
c
ontinue;
...
这样写出来的程序比较烦人,不过结果还是出来了。

你这个算法很麻烦
你可以建立一个数组m[10],代表十个数字,每个元素赋初值为零,表示还没出现过对应的数字,然后先把a里面的出现的数字,对应于数组的位置赋值为1,代表出现过,比如a=5763,则赋值后m[10]={0,0,0,1,0,1,1,1,0,0};
然后类似的建立一个数组n[10]去统计b里面的数字,最后对比m[10]与n[10]就可以了。
其实n[10]这个数组也是多余的,具体的办法你可以想一下

由于整数都是用二进制来表示的,所以不可能可以简单地用某个或者某几个运算符算出来。你可以自己写个function,但……也很复杂哦

你这种算法只是对你这个比如有用