补充函数,要求实现如下功能:寻找并输出11—999之间的数m,它满足m、m2、m3均为回文数(回文数是指各位数字左右对称的整数)。例如:12321.505.1458541等。满足上述条件的数如m=11时,m2=121,m3=1331都是回文数。请编写jsV

admin2021-06-16  46

问题 补充函数,要求实现如下功能:寻找并输出11—999之间的数m,它满足m、m2、m3均为回文数(回文数是指各位数字左右对称的整数)。例如:12321.505.1458541等。满足上述条件的数如m=11时,m2=121,m3=1331都是回文数。请编写jsValue(1ong m)实现此功能。如果是回文数。则函数返回1,不是则返回0。最后,把结果输出到文件OUT.DAT中。
    注意:部分源程序已经给出。
    请勿改动主函数main()中的内容。
    试题程序:
    #include
    #include
    #include
    int jsValue(1ong m)
    {
    }
    main()
    {
    long m;
    FILE*out;
    Out=fopen(“OUT.DAT”,“W”);
    for(m=11;m<1000Im++)
    if(jsValue(m)&&jaValue(m*m)&&jsValue(m*
    m*m))
    {
    printf(“m=%41d,m*m=%61d,m*m*m
    =%81d\n”,m,m*m,m*m*m);
    fprintf(out,“m=%41d,m*m=%61d,m*m*
    m=%81d\n”,m.m*m,m*m*m);}
    fclose(out);}

选项

答案int jsVlue(1ong m) { int i,strlhalf; char tempi20]; hoa(m,temp,10); str=strlen(temp); half=str/2; for(i=0;i=half) return l; else return 0; }

解析 判断回文数,即比时该数字位置上的数是否相等,此时使用ltoa函数将数字进行拆分,拆分为各个单独的数字并放入字符数组中。然后进行比对。如果首位位置不相等,则退出循环,如果相等则继续比对,直到比较到中间位置时都相等,则是回文数,此时返回1。
转载请注明原文地址:https://jikaoti.com/ti/FVY7FFFM
0

最新回复(0)