Advertisement
Racknoss

Вывод N цифры в ряду чисел

Sep 12th, 2015
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6.  
  7. int numobr(int num) //Кол-во цифр перед числом плюс кол-во разрядов числа
  8. {
  9.     int tekrar(0);
  10.     int res(0);
  11.     int numim(num);
  12.     while (numim> 0)
  13.     {
  14.         if (numim > pow(10, tekrar) * 9)
  15.         {
  16.             numim = numim - pow(10, tekrar) * 9;
  17.             res = res + (pow(10, tekrar) * 9)*(tekrar+1);
  18.         }
  19.         else
  20.         {
  21.             res = res + (numim*(tekrar+1));
  22.             numim = 0;
  23.         }
  24.         tekrar++;
  25.     }
  26.     return res;
  27. }
  28.  
  29.  
  30.  
  31. int st(int a, int b) // Возведение в степень с возвращением Int
  32. {
  33.     if (b > 0)
  34.     {
  35.         int res(a);
  36.         for (int i(0); i < b - 1; i++)
  37.         {
  38.             res = res * a;
  39.         }
  40.         return res;
  41.     }
  42.     else return 1;
  43. }
  44.  
  45.  
  46.  
  47. int longnum(int num, int numq) // Вывод конкретной цифры числа.
  48. {
  49.     int res(num);
  50.     res = res / st(10, numq);
  51.     res = res % 10;
  52.     return res;
  53. }
  54.  
  55.  
  56.  
  57. int main(void)
  58. {
  59.     setlocale(0, "Russian");
  60.     int numsumm, realnum(0);
  61.     cout << "Введите число: ";
  62.     cin >> numsumm;
  63.     bool prov(false);
  64.     while (prov == false)
  65.     {
  66.         realnum++;
  67.         if (numobr(realnum) > numsumm)
  68.             if (numobr(realnum - 1) < numsumm)
  69.                 prov = true;
  70.         if (numobr(realnum) == numsumm) prov = true;
  71.     }
  72.  
  73.     cout << "Находиться в числе: " << realnum << endl ;
  74.     cout << "Цифра :" << longnum(realnum, numobr(realnum) - numsumm) << endl;
  75.     system("pause");
  76.     return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement