int 与long long 相乘


#include
#include

int main()
{
    long long int num=0;
    long long int num6 = 0;
    int sub;
    int i;
    while (scanf("%lld", &num) != EOF)
    {
        for (i = 0; num != 0; i++)
        {
            sub = num % 6;


            num6 = ((int)pow(10, i)) * sub + num6;

            //6  1  0
            num = num / 6;
        }
        //num6 = 13531202544;
        printf("%lld", num6);
    }

    return 0;
}

由于pow的强制转换,会导致右侧的溢出,num6的 变成了右侧在int溢出后的数字

需要用 long long强制转换