Даны целое число k (1<=k<=252) и последовательность цифр 505152....250, в которой...

0 голосов
41 просмотров

Даны целое число k (1<=k<=252) и последовательность цифр 505152....250, в которой выписаны подряд все натуральные числа от 50 до 250. Нужно.определить k-ую цифру.помогите перевести с языка Си ++ на СИ<br> #include "stdafx.h"
#include
#include

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "RUS");
const int NumSize = 201;
int nums[NumSize] = {0};
bool q = false;
cout << "Введите число k от 1 до 252: ";<br> int k;
cin >> k;

for(int i = 0; i < NumSize; ++i)
nums[i] = 50+i;

cout << "Последовательность: \n";<br> for(int i = 0; i < NumSize; ++i)
cout << nums[i] << ' ';<br> for(int i = 0; i < NumSize; ++i)
{
if(k == nums[i])
{
cout << "\nЧисло k соответствует числу с номером " << i + 1 << " в последовательности." << endl;<br> q = true;
}
}

if(!q)
cout << "\nЧисло k в последовательности не найдено." << endl;<br> system("pause");
return 0;
}


Информатика (69 баллов) | 41 просмотров
0

Вам нужно найти ЦИФРУ, а не число, поэтому, эта программа написана не правильно.

Дан 1 ответ
0 голосов

#include
#include

int main() {
    int n=0,i=50,k,dgt=0;
    printf("k = ");  
    scanf("%i",&k); 
    while (n    if (i>=100) n+=3;
    else n+=2;
    i++;
    }
    i--;
    if (n==k) dgt=i % 10; 
    else {
       if (n-1==k) dgt=(i/10) % 10;
       if (n-2==k) dgt=i/100;
    };    
    printf("\n digit = %i",dgt);
    printf("\n number = %i",i);

    getch();
    return(0);
}

(9.7k баллов)
0

здесь последовательность не ограничивается числом 250 подскажите как это сделать

0

До 999 (т.е. трехзначных чисел) программа будет работать без изменений в программе.