Переведите из Python в C++ n, k = [int(s) for s in input().split()] bahn = ['I'] * n for i in range(k): left, right = [int(s) for s in input().split()] for j in range(left - 1, right): bahn[j] = '.' print(''.join(bahn)) Пожалуйста,дам много баллов .
fesenko3369
N кеглей выставили в один ряд, занумеровав их слева направо числами от 1 до N. Затем по этому ряду бросили K шаров, при этом i-й шар сбил все кегли с номерами от li до ri включительно. Определите, какие кегли остались стоять на месте.
Программа должна вывести последовательность из N символов, где j-й символ есть “I”, если j-я кегля осталась стоять, или “.”, если j-я кегля была сбита. Я щас решаю эту задачку и ты что-то не так перевёл в си.Попробуй запустить код.
Helper211
Добрый вечер. Программа успешно протестирована и работает. Если у вас что-то не так, напишите, что конкретно не получается.
Helper211
Будем разбираться. С удовольствием помогу и исправлю ошибки
fesenko3369
Если вы решите вот эту лёгкую задачку буду благодарен Дана строка, содержащая пробелы. Найдите, сколько в ней слов (слово – это последовательность непробельных символов, слова разделены одним пробелом, первый и последний символ строки – не пробел). Sample Input:In the town where I was born Sample Output:7
Answers & Comments
Verified answer
Если в 4-й и 5-й строках исходного кода на Python 1 отступ, а в 6-й - два отступа, то эквивалент на C++ может быть записан в следующем виде:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int main()
{
char c;
int n, k;
std::vector<int> left,right;
std::string line,nk;
std::vector<char> bahn;
std::getline(std::cin, line);
for (int i = 0; i < line.length(); i++)
if (line[i] != ' ') nk.push_back(line[i]);
else { n = atoi(nk.c_str()); nk = std::string(); }
k = atoi(nk.c_str());
for (int i=0;i<n;i++) bahn.push_back('I');
for (int i = 0; i < k; i++)
{
nk.clear();
std::getline(std::cin, line);
for (int i = 0; i < line.length(); i++)
if (line[i] != ' ') nk.push_back(line[i]);
else { left.push_back(atoi(nk.c_str())); nk = std::string(); }
right.push_back(atoi(nk.c_str()));
}
line = std::string(bahn.begin(), bahn.end());
for (int i = 0; i < k; i++)
for (int j = left.at(i) - 1; j < right.at(i); j++)
line[j] = '.';
std::cout << line;
return 0;
}
Программа должна вывести последовательность из N символов, где j-й символ есть “I”, если j-я кегля осталась стоять, или “.”, если j-я кегля была сбита. Я щас решаю эту задачку и ты что-то не так перевёл в си.Попробуй запустить код.
Sample Input:In the town where I was born
Sample Output:7