В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
alinaisaeva839
alinaisaeva839
17.10.2020 21:20 •  Информатика

Написать программу вычисления стоимости покупки с учётом скидки. скидка в 10% предоставляется, если сумма покупки больше 1000 руб.

Показать ответ
Ответ:
nasyapest
nasyapest
11.02.2022 14:49
Сначала надо избавиться от ошибок (пункт №3)
иначе не сможем выполнить 1 и 2 пункт задания.
  Исправляем if N mod 10 k:=N mod 10; на if (N mod 10 < k) then k:=N mod 10;
  Исправляем N:N div 10; на N:= N div 10;
 
После исправления ошибок при вводе 537 получим 3
Программа будет работать правильно для любого числа,
у которого вторая цифра слева меньше первой цифры, например:
7193

Чтобы программа работала правильно для всех чисел надо
изменить это: while N > 10 do на while N > 0 do

После всех исправлений код программы стал таким:
var
  N, k: integer;
begin
  readln(N);
  k := 9;
  while N > 10 do
  begin
    if (N mod 10 < k) then k := N mod 10;
    N := N div 10;
  end;
  write(k)
end.
0,0(0 оценок)
Ответ:
benleo2001
benleo2001
11.12.2020 14:02
//PascalABC.NET 3.2 сборка 1318

var
  l, r, counter, i: integer;

function DifNum(a: integer): integer;
var  se: set of integer;
  i: integer;
begin
  while a > 0 do
  begin
    if a mod 10 in se then
    begin
      DifNum := 0;
      exit;
    end
    else include(se, a mod 10);
    a := a div 10;
  end;
  DifNum := 1;
end;

begin
  read(l, r);
  for i := l to r do
    counter += DifNum(i);
  writeln(counter);
end.

//Альтернативное решение на Паскале

Var
  l,r:integer;
begin
read(l,r);
writeln(range(l,r).where(x -> x.tostring.toarray.distinct.count=length(x.tostring)).Count);
end.

//Dev-C++ 5.11 (C)

#include <stdio.h>
#include <malloc.h>

int DifNum(int);

int main(void)
 {int l,r,counter=0;
 scanf("%d %d",&l,&r);
 for(int i=l;i<=r;i++)
  counter+=DifNum(i);
 printf("%d",counter);
return 0;}

int DifNum(int a)
 {int k=1,*nums;
 nums=(int*)malloc(k*sizeof(int));
 nums[0]=-1;
 while(a>0)
  {for(int i=0;i<k;i++)
   if(a%10==nums[i])
    return 0;
  k++;
  nums=(int*)malloc(k*sizeof(int));
  nums[k-1]=a%10;
  a/=10;}
 free(nums);
 return 1;}

Пример ввода:
1 12
Пример вывода:
11
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота