问答详情
源自:4-9 循环结构之for循环(二)

hd^3和hd*hd*hd有区别吗?为什么答案不一样

#include <stdio.h>

int main()

{

    //定义三位数num,个位数sd,十位数td,百位数hd

    int num, sd, td, hd;

    //循环所有三位数

    for(num=100;num<1000;num++)

    {

        //获取三位数字num百位上的数字

        hd =num/100;

        //获取三位数字num十位上的数字

        td =num%100/10;

        //获取三位数字num个位上的数字

        sd =num%10;

        //水仙花数的条件是什么?

        if(hd^3+td^3+sd^3==num) 

        {

            printf("水仙花数字:%d\n", num);    

        }

    }

    return 0;    


提问者:秃头老仙女 2019-12-20 11:14

个回答

  • Black_Cherry
    2019-12-20 11:28:09
    已采纳

    C语言中^并非乘方的意思,在C语言中^是位运算异或。 异或运算符"∧"也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。