Как угадать последние 2 цифры номера телефона

Оригинал взят уvitya_prujinkinв Узнай свой номер телефона по калькулятору!

Эх, люблю я такие штуки. Чему бы жизнь нас не учила, Сердце верит в чудеса…
Оригинал взят уdenis_balinв Узнай свой номер телефона по калькулятору!

Не знаю, что за прикол, точнее где-то уже встречал в инете, ног смысл не ясен. Всё проделать на своем номере телефона, действительно работает. Только вот зачем?

1. Берём калькулятор
2. Вводим 3 первые цифры вашего номера телефона (без всяких кодов и т.п.)
3. Умножаем на 80
4. Прибавляем 1
5. Умножаем на 250
6. Прибавляем 4 последние цифры вашего номера телефона
7. Прибавляем 4 последние цифры вашего номера телефона ещё раз
8. Отнимаем 250
9. Делим на 2
10.Офигеваем

А все довольно просто.
Обозначим номер телефона цифрами
 a6  a5  a4  a3  a2  a1  a0
Если рассматривать эти цифры как разряды соответствующего десятичного числа , то такое число будет иметь вид

a106 + a5 105 + a4 104 + a3 103 + a2 102  + a1 10 +a0

Запишем теперь в виде формулы действия по пунктам 2-9, получаем:

{[(a103 + a5 102 + a4 10) 80 + 1] 250 + ( a3 103 + a2 102  + a1 10 +a0 )+ ( a3 103 + a2 102  + a1 10 + a0 ) — 250} /2

После раскрытия скобок  сразу получаем искомое десятичное число

a106 + a5 105 + a4 104 + a3 103 + a2 102  + a1 10 +a0

Кстати, пункты 4 и 8 взаимно уничтожают друг друга, их можно было бы не делать.  Если в пункте 3 вместо 80 умножить на 40, то пункты 7 и 9 тоже становятся не нужными. Если процедуру таким образом упростить, разгадка становится ясной уже без всяких формул.

Improve Article

Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Given eight digits of a phone number as an integer N, the task is to find the missing last two digits and print the complete number when the last two digits are the sum of given eight digits.
    Examples: 
     

    Input: N = 98765432 
    Output: 9876543244
    Input: N = 10000000 
    Output: 1000000001 
     

    Approach: 
     

    • Get the eight digits of the phone number from N one by one using the Modulo 10 operator (%10).
    • Add these digits in a variable say sum to get the sum of the eight digits.
    • Now, there are two cases: 
      • If sum < 10 then it is a single digit i.e. insert 0 in the beginning to make it a two digit number without affecting the value.
      • Else sum is the number represented by the last two digits.

    Below is the implementation of the above approach: 
     

    C++

    #include <iostream>

    using namespace std;

    void findPhoneNumber(int n)

    {

        int temp = n;

        int sum;

        while (temp != 0) {

            sum += temp % 10;

            temp = temp / 10;

        }

        if (sum < 10)

            cout << n << "0" << sum;

        else

            cout << n << sum;

    }

    int main()

    {

        long int n = 98765432;

        findPhoneNumber(n);

        return 0;

    }

    Java

    class GFG

    {

    static void findPhoneNumber(int n)

    {

        int temp = n;

        int sum = 0;

        while (temp != 0)

        {

            sum += temp % 10;

            temp = temp / 10;

        }

        if (sum < 10)

            System.out.print(n + "0" + sum);

        else

            System.out.print(n +""+ sum);

    }

    public static void main(String[] args)

    {

        int n = 98765432;

        findPhoneNumber(n);

    }

    }

    Python 3

    def findPhoneNumber(n):

        temp = n

        sum = 0

        while (temp != 0):

            sum += temp % 10

            temp = temp // 10

        if (sum < 10):

            print(n,"0",sum)

        else:

            n = str(n)

            sum = str(sum)

            n += sum

            print(n)

    if __name__ == '__main__':

        n = 98765432

        findPhoneNumber(n)

    C#

    using System;

    class GFG

    {

    static void findPhoneNumber(int n)

    {

        int temp = n;

        int sum = 0;

        while (temp != 0)

        {

            sum += temp % 10;

            temp = temp / 10;

        }

        if (sum < 10)

            Console.Write(n + "0" + sum);

        else

            Console.Write(n + "" + sum);

    }

    static public void Main ()

    {

        int n = 98765432;

        findPhoneNumber(n);

    }

    }

    Javascript

    <script>

    function findPhoneNumber(n)

    {

        let temp = n;

        let sum=0;

        while (temp != 0) {

            sum += temp % 10;

            temp = Math.floor(temp / 10);

        }

        if (sum < 10)

            document.write(n + "0" + sum);

        else

            document.write(n + "" + sum);

    }

        let n = 98765432;

        findPhoneNumber(n);

    </script>

    Time Complexity: O(log10n)

    Auxiliary Space: O(1)

    Improve Article

    Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Given eight digits of a phone number as an integer N, the task is to find the missing last two digits and print the complete number when the last two digits are the sum of given eight digits.
    Examples: 
     

    Input: N = 98765432 
    Output: 9876543244
    Input: N = 10000000 
    Output: 1000000001 
     

    Approach: 
     

    • Get the eight digits of the phone number from N one by one using the Modulo 10 operator (%10).
    • Add these digits in a variable say sum to get the sum of the eight digits.
    • Now, there are two cases: 
      • If sum < 10 then it is a single digit i.e. insert 0 in the beginning to make it a two digit number without affecting the value.
      • Else sum is the number represented by the last two digits.

    Below is the implementation of the above approach: 
     

    C++

    #include <iostream>

    using namespace std;

    void findPhoneNumber(int n)

    {

        int temp = n;

        int sum;

        while (temp != 0) {

            sum += temp % 10;

            temp = temp / 10;

        }

        if (sum < 10)

            cout << n << "0" << sum;

        else

            cout << n << sum;

    }

    int main()

    {

        long int n = 98765432;

        findPhoneNumber(n);

        return 0;

    }

    Java

    class GFG

    {

    static void findPhoneNumber(int n)

    {

        int temp = n;

        int sum = 0;

        while (temp != 0)

        {

            sum += temp % 10;

            temp = temp / 10;

        }

        if (sum < 10)

            System.out.print(n + "0" + sum);

        else

            System.out.print(n +""+ sum);

    }

    public static void main(String[] args)

    {

        int n = 98765432;

        findPhoneNumber(n);

    }

    }

    Python 3

    def findPhoneNumber(n):

        temp = n

        sum = 0

        while (temp != 0):

            sum += temp % 10

            temp = temp // 10

        if (sum < 10):

            print(n,"0",sum)

        else:

            n = str(n)

            sum = str(sum)

            n += sum

            print(n)

    if __name__ == '__main__':

        n = 98765432

        findPhoneNumber(n)

    C#

    using System;

    class GFG

    {

    static void findPhoneNumber(int n)

    {

        int temp = n;

        int sum = 0;

        while (temp != 0)

        {

            sum += temp % 10;

            temp = temp / 10;

        }

        if (sum < 10)

            Console.Write(n + "0" + sum);

        else

            Console.Write(n + "" + sum);

    }

    static public void Main ()

    {

        int n = 98765432;

        findPhoneNumber(n);

    }

    }

    Javascript

    <script>

    function findPhoneNumber(n)

    {

        let temp = n;

        let sum=0;

        while (temp != 0) {

            sum += temp % 10;

            temp = Math.floor(temp / 10);

        }

        if (sum < 10)

            document.write(n + "0" + sum);

        else

            document.write(n + "" + sum);

    }

        let n = 98765432;

        findPhoneNumber(n);

    </script>

    Time Complexity: O(log10n)

    Auxiliary Space: O(1)

    Понравилась статья? Поделить с друзьями:
  • Как тактично отказать дать номер телефона
  • Как установить рингтон на номер контакта на телефоне
  • Как соскучишься позвонишь
  • Как установить определитель номера телефона на айфон
  • Как сменить номер телефона на фейсит