For循环除数

For loop divide numbers

本文关键字:循环 For      更新时间:2023-10-16

当涉及到c++时,我是一个业余爱好者,但是我已经收到了一个超出我知识范围的任务。

任务是输入数字n,m。程序必须把它作为一个区间,在这个区间内检查是否有一个数是具有相同指数的数的和。

编辑:(18.10.15)原来我没有正确理解我的任务。

"用户输入两个数字。程序将其作为检查所有数字的间隔。如果区间内存在一个数字,其所有数字的同指数和等于该数字,则程序显示该数字。"

例如,输入100和200。这个区间是153。153 = 1³+ 5³+ 3³(1+125+27)节目显示153.

cin >> n;
cin >> m;
    for (int i=n; i<=m; i++)
    {
        for (int k=n; k<=i; k++)
        {
                a = n % 10; //for example, I enter 153, then a=3
                f = n /= 10; //f=15
                b = f % 10;  //b=5
                f = f /= 10; //f=1
                c = f % 10; //c=1
                f = f /= 10;
                d = f % 10;
                for (int j=1; j<=5; j++)
                {
                    a = a * a;
                    b = b * b;
                    c = c * c;
                    d = d * d;
                    if (a + b + c + d == n)
                    {
                        cout << n << endl;
                    }
                }
        }
    }

任务是输入数字n,m。程序必须把它作为一个区间,在这个区间内检查是否有一个数是具有相同指数的数的和。

假设范围为[n, m),则程序如下:

return (n != m);

任何数都可以看作具有相同指数的数的和。例如:

0 = 0 ^ 3 + 0 ^ 3 + 0 ^ 3
1 = 1 ^ 3 + 0 ^ 3
2 = 1 ^ 3 + 1 ^ 3
3 = 1 ^ 3 + 1 ^ 3 + 1 ^ 3

等等。

因此在任何非空范围内至少存在一个这样的数

"我只知道如何让程序分别检查每个数字"程序不能使用数组。"

    for (int i = n; i <= m; i++) {
        ...
        int x = (int)Math.log10(i);
        int rest = i;
        for (int p = x; p>=0; p--) {
            int digit = rest / (int)Math.pow(10,p);
            rest = i % (int)Math.pow(10,p);
            //3802 = 3*10^3 + 8*10^2 + 0*10^1 + 2*10^0 
        }
    }
    ...

对不起,Java不是c++吗

很抱歉我回答得这么晚,而且我的问题表达得很糟糕-英语不是我的母语。

但结果是我没有正确理解我的任务。

"用户输入两个数字。程序将其作为检查所有数字的间隔。如果区间内存在一个数字,其所有数字的同指数和等于该数字,则程序显示该数字。"

例如,输入100和200。这个区间是153。153 = 1³+ 5³+ 3³(1+125+27)节目显示153.

cin >> n;
cin >> m;
    for (int i=n; i<=m; i++)
    {
        for (int k=n; k<=i; k++)
        {
                a = n % 10; //for example, I enter 153, then a=3
                f = n /= 10; //f=15
                b = f % 10;  //b=5
                f = f /= 10; //f=1
                c = f % 10; //c=1
                f = f /= 10;
                d = f % 10;
                for (int j=1; j<=5; j++)
                {
                    a = a * a;
                    b = b * b;
                    c = c * c;
                    d = d * d;
                    if (a + b + c + d == n)
                    {
                        cout << n << endl;
                    }
                }
        }
    }