• Вопрос по информатике:

    Среди чисел 1 до N найдите и выведите на экран такие,запись которых совпадают с последними цифрами их квадрата (например 6 в квадрате=36).N введите с клавиатуры.Буду очень благодарен за решение(и если вас не затруднит объяснение,т.к я новенький в этом деле и хотел бы научиться у знающих людей)спасибо за внимание.

    • Автор:

      alancastillo
  • Ответ:

    Пожалуйста, с переводами строки. Лучше бы уже исправили их обработку в коде сайта.
    • Отвечал:

      jakobhnb4

    Ответ:

    ОТДЕЛ Задание+;ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\", Приём;ПЕР  N, сч, ч, кв: ЦЕЛ;УКАЗ  N := Приём.Число();  ОТ сч := 0 ДО N ВЫП    кв := сч * сч;    ч := сч;    КОЛЬЦО      ПОКА ч > 0 И кв > 0 ВЫП        ЕСЛИ ч ОСТАТОК 10 # кв ОСТАТОК 10 ТО          ВЫХОД        КОН;        ч := ч ДЕЛИТЬ 10;        кв := кв ДЕЛИТЬ 10      КОН;      Вывод.ЧЦел("^%d", сч, 0, 0, 0)    КОН  КОНКОН Задание.Отдел "Приём", раз уж Издатель не успел его включить в выпуск (хотя стоило бы рассматривать это как стандартный ввод):ОТДЕЛ Приём; ИСПОЛЬЗУЕТ   ОС ИЗ "...\Отделы\Обмен\",   КОС ИЗ "...\Отделы\Обмен\",  Ввод ИЗ "...\Отделы\Обмен\",   Вывод ИЗ "...\Отделы\Обмен\",   Знак ИЗ "...\Отделы\Иное\"; ЗАДАЧА Строка-(строка+: РЯД ИЗ ЗНАК); (* Текстовая строка *) ПЕР   отКлавиш: Ввод.ОтКлавиш;   отМышки: Ввод.ОтМышки;   Счётчик: ЦЕЛ; УКАЗ   Счётчик := 0;   КОЛЬЦО     ЕСЛИ КОС.Опрос(отКлавиш, отМышки) = Ввод.клавиши ТО       ЕСЛИ отКлавиш.знак = 0DX ТО         ЕСЛИ Счётчик < РАЗМЕР(строка) ТО строка[Счётчик] := 0X КОН;         ВЫХОД       АЕСЛИ отКлавиш.код = 08H ТО          ЕСЛИ Счётчик > 0 ТО            строка[Счётчик-1] := 0X; УМЕНЬШИТЬ(Счётчик);            Вывод.ЗнакЦепи(отКлавиш.знак); Вывод.ЗнакЦепи(" ");            Вывод.ЗнакЦепи(отКлавиш.знак)          КОН       АЕСЛИ (отКлавиш.код = 2DH) И (ОС.РазмерЦепочкиОбменника() # 0) ТО         ПОКА Счётчик > 0 ВЫП           строка[Счётчик-1] := 0X; УМЕНЬШИТЬ(Счётчик);           Вывод.ЗнакЦепи(8X); Вывод.ЗнакЦепи(" "); Вывод.ЗнакЦепи(8X)         КОН;         ОС.ЦепочкуИзОбменника(строка);         ЕСЛИ ОС.РазмерЦепочкиОбменника() > РАЗМЕР(строка) ТО           Счётчик := РАЗМЕР(строка)         ИНАЧЕ Счётчик := ОС.РазмерЦепочкиОбменника() КОН;         Вывод.Цепь(строка)       АЕСЛИ отКлавиш.знак = 0X ТО       ИНАЧЕ         ЕСЛИ Счётчик < РАЗМЕР(строка) ТО           строка[Счётчик] := отКлавиш.знак;           УВЕЛИЧИТЬ(Счётчик);           Вывод.ЗнакЦепи(отКлавиш.знак)         КОН       КОН     ИНАЧЕ ОС.Спать(50) КОН   КОНКОН Строка; ЗАДАЧА Число-(): ЦЕЛ;(* Целое число *)ПЕР   отКлавиш: Ввод.ОтКлавиш;   отМышки: Ввод.ОтМышки;   Счётчик, сч: ЦЕЛ;   Результат: ЦЕЛ;   Буфер: ДОСТУП К РЯД ИЗ ЗНАК;   Отрицательное: КЛЮЧ;УКАЗ   Результат := 0; Счётчик := 0; Отрицательное := ОТКЛ;   КОЛЬЦО     ЕСЛИ КОС.Опрос(отКлавиш, отМышки) = Ввод.клавиши ТО       ЕСЛИ отКлавиш.знак = 0DX ТО         ЕСЛИ Отрицательное ТО ВОЗВРАТ -Результат ИНАЧЕ ВОЗВРАТ Результат КОН       АЕСЛИ отКлавиш.код = 08H ТО         ЕСЛИ Счётчик > 0 ТО          Результат := Результат ДЕЛИТЬ 10;           Вывод.ЗнакЦепи(отКлавиш.знак); Вывод.ЗнакЦепи(" "); Вывод.ЗнакЦепи(отКлавиш.знак); УМЕНЬШИТЬ(Счётчик)        АЕСЛИ Отрицательное ТО          Отрицательное := ОТКЛ;          Вывод.ЗнакЦепи(отКлавиш.знак); Вывод.ЗнакЦепи(" "); Вывод.ЗнакЦепи(отКлавиш.знак)        КОН       АЕСЛИ (отКлавиш.код = 2DH) И (ОС.РазмерЦепочкиОбменника() # 0) ТО         ПОКА Счётчик > 0 ВЫП           УМЕНЬШИТЬ(Счётчик); Вывод.ЗнакЦепи(8X); Вывод.ЗнакЦепи(" "); Вывод.ЗнакЦепи(8X)         КОН;         ЕСЛИ Отрицательное ТО          Отрицательное := ОТКЛ; Вывод.ЗнакЦепи(8X); Вывод.ЗнакЦепи(" "); Вывод.ЗнакЦепи(8X)        КОН;        Результат := 0;         СОЗДАТЬ(Буфер, ОС.РазмерЦепочкиОбменника());         ОС.ЦепочкуИзОбменника(Буфер^);         ЕСЛИ (Буфер[0] >= "0") И (Буфер[0] <= "9") ТО           Результат := Результат * 10 + (ВЦЕЛ(Буфер[0]) - ВЦЕЛ("0"));           Вывод.ЗнакЦепи(Буфер[0]); УВЕЛИЧИТЬ(Счётчик)         АЕСЛИ Буфер[0] = "-" ТО Вывод.ЗнакЦепи("-"); Отрицательное := ВКЛ КОН;        ОТ сч := 1 ДО РАЗМЕР(Буфер^)-1 ВЫП           ЕСЛИ (Буфер[сч] >= "0") И (Буфер[сч] <= "9") ТО             Результат := Результат * 10 + (ВЦЕЛ(Буфер[сч]) - ВЦЕЛ("0"));             Вывод.ЗнакЦепи(Буфер[сч]); УВЕЛИЧИТЬ(Счётчик)           КОН         КОН;         Буфер := ПУСТО       АЕСЛИ (отКлавиш.знак = "-") И (НЕ Отрицательное) ТО         ЕСЛИ Результат = 0 ТО Отрицательное := ВКЛ; Вывод.ЗнакЦепи("-") КОН      АЕСЛИ отКлавиш.знак = 0X ТО       АЕСЛИ (Результат < МАКС(ЦЕЛ) ДЕЛИТЬ 10) И ((отКлавиш.знак >= "0") И (отКлавиш.знак <= "9")) ТО         Результат := Результат * 10 + (ВЦЕЛ(отКлавиш.знак) - ВЦЕЛ("0"));         Вывод.ЗнакЦепи(отКлавиш.знак); УВЕЛИЧИТЬ(Счётчик)       КОН     ИНАЧЕ ОС.Спать(50) КОН   КОНКОН Число; ЗАДАЧА Ждать-;(* Простаиваем, пока не будет нажата любая клавиша *)ПЕР   отКлавиш: Ввод.ОтКлавиш;   отМышки: Ввод.ОтМышки;УКАЗ   ПОКА КОС.Опрос(отКлавиш, отМышки) # Ввод.клавиши ВЫП     ОС.Спать(50)   КОНКОН Ждать; КОН Приём.
    • Отвечал:

      buddy5aqb

    Ответ:

    1. Современный вариант// PascalABC.NET 3.2, сборка 1362 от 14.12.2016// Внимание! Если программа не работает, обновите версию!begin  var n:=ReadInteger('N=');  Range(1,n).Select(i->(i.ToString,(i*i).ToString)).    Where(t->t[0]=t[1].Right(t[0].Length)).Println;end.ПримерN= 1000(1,1) (5,25) (6,36) (25,625) (76,5776) (376,141376) (625,390625)2. А вот так примерно учат в большинстве школvar  n,i,j,li,li2:integer;  si,si2:string;begin  Write('N= '); Read(n);  for i:=1 to n do begin    Str(i,si);    li:=Length(si);    Str(i*i,si2);    li2:=Length(si2);    si2:=Copy(si2,li2+1-li,li);    if si=si2 then Write('(',si,',',i*i,') ')    endend.
    • Отвечал:

      janaemahoney

    Ответов нет, но ты это испарвиш!

Еще 4 ненужных тебе вопроса, но это важно для поиска