私信TA

用户名:dotcpp0784625

访问量:148

签 名:

等  级
排  名 2346
经  验 2321
参赛次数 0
文章发表 19
年  龄 20
在职情况 学生
学  校 北京理工大学
专  业 弹药工程与爆炸技术

  自我简介:

解题思路:先写出将一个整数转换为七进制数和九进制数的函数,分别逢九进一,逢七进一,思路为先找出不超过n的最大的最大幂,然后分别向下求对应的余数,并记录下来,对于的余数乘对于的十的幂,从而表示出对应的数。题目要求为该正整数的七进制数和九进制数均为三位数,则须先用一个循环语句从一开始,并嵌套个选择语句判断其七进制数和九进制数是否为三位数,若为三位数,要确保两个转换之后的数三位数码相反,从而再嵌套一个选择语句,实现对应功能。

注意事项:函数的调用

参考代码:

#include <stdio.h>

#include <math.h>


int nine(int n)

{

    int count = 0;

    int i = 0;

    int j = 0;

    int temp = n;


    for (i = 0; ; i++)

    {

        if (temp / 9 != 0)

        {

            temp = temp / 9;

        }

        else

        {

            break;

        }

    }


    for (j = i; j >= 0; j--)

    {

        count = n / (int)pow(9, j) + count * 10;

        n = n % (int)pow(9, j);

    }

    return count;

}


int seven(int n)

{

    int count = 0;

    int i = 0;

    int j = 0;

    int temp = n;


    for (i = 0; ; i++)

    {

        if (temp / 7 != 0)

        {

            temp = temp / 7;

        }

        else

        {

            break;

        }

    }


    for (j = i; j >= 0; j--)

    {

        count = n / (int)pow(7, j) + count * 10;

        n = n % (int)pow(7, j);

    }

    return count;


}


int main()

{

    int i = 1;

    for (i = 1;; i++)

    {

        if (nine(i) / 100 != 0 && seven(i) / 100 != 0)

        {

            if (nine(i) / 100 == seven(i) % 10 && nine(i) % 10 == seven(i) / 100 && (nine(i) % 100) / 10 == (seven(i) % 100) / 10)

            {

                printf("%d\n", i);

                printf("%d\n", seven(i));

                printf("%d\n", nine(i));

                break;

            }

        }

    }


    return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »