Выводит YES если есть, и NO если нету На языке С++:
#include <bits/stdc++.h> using namespace std;
string s;
int main () { cin >> s; for (int i = 0; i < s.size(); ++ i) { for (int j = i; j < s.size(); ++ j) { int a = s[i] - '0'; int b = s[j] - '0'; if (a == b) { cout << "YES"; return 0; } } } cout << "NO"; }
// PascalABC.NET 3.2, сборка 1381 от 04.02.2017 // Внимание! Если программа не работает, обновите версию!
Задача М
begin var a:=ReadInteger.ToString.AdjacentGroup; var f:=False; foreach var g in a do if g.Count>1 then begin Write('YES'); f:=true; break end; if not f then Write('NO') end.
Примеры 5221 YES
1232 NO
Задача О
begin var s:=ReadInteger.ToString; if s.Length<>(s.Distinct).Count then Write('YES') else Write('NO') end.
1) var i,a:Integer; begin a:= 1; while a<>0 do begin Read(a); i+=a; end; WriteLn(i=10); end.
2) Можно через double. Но после 170! уже бесконечность. var n:Integer; var b:double; begin b:=1; Read(n); for var i:= 1 to n do b*=i; WriteLn('factorial '+n+' = '+b); end.
3) Работает как и с числами так и со строками. var arr:array of char; var a:String; var first,last:Integer; begin Read(a); arr:= a.ToCharArray(); for var i:= 0 to arr.Length-1 do begin first:=Pos(arr[i], a); last:=Pos(arr[i], a,first+1); if (first>0) and (last > 0) and (first<>last) then begin first:=99; break; end; end; if first = 99 then WriteLn('Содержит. Это число '+arr[last-1]) else WriteLn('Несодержит.'); end.
Просто бежим по числу, получая новую цифру с остатка от деления на 10 и отбрасывая её с целочисленного деления на 10. Количество цифр сохраняем в массив. Когда мы посчитали одну цифру два раза, выходим из цикла.
begin if ReadInteger('Введите число:').ToString.GroupBy(t->t). Select(t->(t.Key,t.Count)).Any(t->t[1]>1) then Writeln('Число содержит по крайней мере две одинаковые цифры') else Writeln('Введенное число не содержит одинаковых цифр') end.
Примеры Введите число: 12345670 Введенное число не содержит одинаковых цифр
Введите число: 1320624 Число содержит по крайней мере две одинаковые цифры
Program n1; var a, b, c, s: longint; begin read(c); repeat a := c mod 10; c := c div 10; s := c; while s > 0 do begin b := s mod 10; s := s div 10; if (a = b) then begin writeln('yes'); a :=77; break; end; end; if (a = 77) then break until (c = 0); if (a <> 77) then writeln('no'); end.
Var A:integer; C:array[0..9] of integer; Begin ReadLn(A); While A<>0 do Begin C[A mod 10]:=C[A mod 10]+1; A:= A div 10; End; While (A<9)and(C[A]<2) do A:=A+1; if C[A]>1 then WriteLn('YES') else WriteLn('NO'); End.
Var A,B,C,D:integer; Begin Write('Введите целое число: ');ReadLn(A); C := 0; While (A <> 0)and(C < 1) do Begin C := 0; B := A mod 10; A := A div 10; D := A; while D <> 0 do begin if D mod 10 = B then C := 1; D := D div 10; end; End; if (C = 1) then WriteLn('В данном числе есть одинаковые цифры') else WriteLn('В данном числе нет одинаковых цифр '); End.
Var s: string; i, j, n: integer; c: char; flag: boolean;
begin Write('Введите произвольное число: '); Readln(s); flag := false; n := length(s); i := 1; while (i <= n) and (not flag) do begin c := s[i]; j := i + 1; while (j <= n) and (not flag) do if s[j] = c then flag := true else j := j + 1; if (not flag) then i := i + 1 end; if flag then Writeln('Символ "', c, '" встречается больше одного раза') else Writeln('Все символы уникальны') end.
Тестовое решение: Введите произвольное число: 16379068 Символ "6" встречается больше одного раза
var s: string; i, j, n: integer; c: char; flag: boolean;
begin Write('Введите произвольное число: '); Readln(s); flag := false; n := length(s); i := 1; while (i <= n) and (not flag) do begin c := s[i]; j := i + 1; while (j <= n) and (not flag) do if s[j] = c then flag := true else j := j + 1; if (not flag) then i := i + 1 end; if flag then Writeln('Символ "', c, '" встречается больше одного раза') else Writeln('Все символы уникальны') end.
Тестовое решение: Введите произвольное число: -1453.5462 Символ "4" встречается больше одного раза
Var s: string; i, j, n: integer; c: char; flag: boolean;
begin Write('Введите число: '); Readln(s); flag := false; n := length(s); i := 1; while (i <= n) and (not flag) do begin c := s[i]; j := i + 1; while (j <= n) and (not flag) do if s[j] = c then flag := true else j := j + 1; if (not flag) then i := i + 1 end; if flag then Writeln('Символ "', c, '" встречается больше одного раза') else Writeln('Все символы разные') end.
Выводит YES если есть, и NO если нету На языке С++:
#include <bits/stdc++.h> using namespace std;
string s;
int main () { cin >> s; for (int i = 0; i < s.size(); ++ i) { for (int j = i; j < s.size(); ++ j) { int a = s[i] - '0'; int b = s[j] - '0'; if (a == b) { cout << "YES"; return 0; } } } cout << "NO"; }
На языке С++:
#include <bits/stdc++.h>
using namespace std;
string s;
int main ()
{
cin >> s;
for (int i = 0; i < s.size(); ++ i)
{
for (int j = i; j < s.size(); ++ j)
{
int a = s[i] - '0';
int b = s[j] - '0';
if (a == b)
{
cout << "YES";
return 0;
}
}
}
cout << "NO";
}
// Внимание! Если программа не работает, обновите версию!
Задача М
begin
var a:=ReadInteger.ToString.AdjacentGroup;
var f:=False;
foreach var g in a do
if g.Count>1 then begin
Write('YES'); f:=true; break
end;
if not f then Write('NO')
end.
Примеры
5221
YES
1232
NO
Задача О
begin
var s:=ReadInteger.ToString;
if s.Length<>(s.Distinct).Count then Write('YES')
else Write('NO')
end.
Примеры
212
YES
12345
NO
var i,a:Integer;
begin
a:= 1;
while a<>0 do
begin
Read(a);
i+=a;
end;
WriteLn(i=10);
end.
2) Можно через double. Но после 170! уже бесконечность.
var n:Integer;
var b:double;
begin
b:=1;
Read(n);
for var i:= 1 to n do
b*=i;
WriteLn('factorial '+n+' = '+b);
end.
3) Работает как и с числами так и со строками.
var arr:array of char;
var a:String;
var first,last:Integer;
begin
Read(a);
arr:= a.ToCharArray();
for var i:= 0 to arr.Length-1 do
begin
first:=Pos(arr[i], a);
last:=Pos(arr[i], a,first+1);
if (first>0) and (last > 0) and (first<>last) then
begin
first:=99;
break;
end;
end;
if first = 99 then
WriteLn('Содержит. Это число '+arr[last-1])
else
WriteLn('Несодержит.');
end.
-- вот код
Просто бежим по числу, получая новую цифру с остатка от деления на 10 и отбрасывая её с целочисленного деления на 10. Количество цифр сохраняем в массив. Когда мы посчитали одну цифру два раза, выходим из цикла.
Внимание! Если программа не работает, обновите версию!
№1
function IsGood(n:integer):boolean;
begin
n:=Abs(n);
var s:=0;
while n>0 do begin
s+=n mod 10;
n:=n div 10
end;
Result:=s=10
end;
begin
var k:=ReadSeqIntegerWhile(t->t<>0).Where(t->IsGood(t)).Count;
Writeln(k,' чисел с суммой цифр, равной 10')
end.
Пример
-5234 20043 52340 10531 -64 31502 0
2 чисел с суммой цифр, равной 10
№2
begin
var n:=ReadInteger('Введите число:');
if n<=1 then Writeln(n,'!=',1)
else Writeln(n,'!=',1.To(n).Aggregate(BigInteger(1),(i,j)->i*j))
end.
Примеры
Введите число: 5
5!=120
Введите число: 20
20!=2432902008176640000
Введите число: 100
100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
№3
begin
if ReadInteger('Введите число:').ToString.GroupBy(t->t).
Select(t->(t.Key,t.Count)).Any(t->t[1]>1)
then Writeln('Число содержит по крайней мере две одинаковые цифры')
else Writeln('Введенное число не содержит одинаковых цифр')
end.
Примеры
Введите число: 12345670
Введенное число не содержит одинаковых цифр
Введите число: 1320624
Число содержит по крайней мере две одинаковые цифры
var a, b, c, s: longint;
begin
read(c);
repeat
a := c mod 10;
c := c div 10;
s := c;
while s > 0 do
begin
b := s mod 10;
s := s div 10;
if (a = b) then begin
writeln('yes');
a :=77;
break;
end;
end;
if (a = 77) then break
until (c = 0);
if (a <> 77) then
writeln('no');
end.
C:array[0..9] of integer;
Begin
ReadLn(A);
While A<>0 do
Begin
C[A mod 10]:=C[A mod 10]+1;
A:= A div 10;
End;
While (A<9)and(C[A]<2) do A:=A+1;
if C[A]>1 then WriteLn('YES')
else WriteLn('NO');
End.
A,B,C,D:integer;
Begin
Write('Введите целое число: ');ReadLn(A);
C := 0;
While (A <> 0)and(C < 1) do
Begin
C := 0;
B := A mod 10;
A := A div 10;
D := A;
while D <> 0 do
begin
if D mod 10 = B then
C := 1;
D := D div 10;
end;
End;
if (C = 1) then WriteLn('В данном числе есть одинаковые цифры')
else WriteLn('В данном числе нет одинаковых цифр ');
End.
s: string;
i, j, n: integer;
c: char;
flag: boolean;
begin
Write('Введите произвольное число: '); Readln(s);
flag := false;
n := length(s);
i := 1;
while (i <= n) and (not flag) do
begin
c := s[i];
j := i + 1;
while (j <= n) and (not flag) do
if s[j] = c then flag := true else j := j + 1;
if (not flag) then i := i + 1
end;
if flag then Writeln('Символ "', c, '" встречается больше одного раза')
else Writeln('Все символы уникальны')
end.
Тестовое решение:
Введите произвольное число: 16379068
Символ "6" встречается больше одного раза
s: string;
i, j, n: integer;
c: char;
flag: boolean;
begin
Write('Введите произвольное число: '); Readln(s);
flag := false;
n := length(s);
i := 1;
while (i <= n) and (not flag) do
begin
c := s[i];
j := i + 1;
while (j <= n) and (not flag) do
if s[j] = c then flag := true else j := j + 1;
if (not flag) then i := i + 1
end;
if flag then Writeln('Символ "', c, '" встречается больше одного раза')
else Writeln('Все символы уникальны')
end.
Тестовое решение:
Введите произвольное число: -1453.5462
Символ "4" встречается больше одного раза
s: string;
i, j, n: integer;
c: char;
flag: boolean;
begin
Write('Введите число: '); Readln(s);
flag := false;
n := length(s);
i := 1;
while (i <= n) and (not flag) do
begin
c := s[i];
j := i + 1;
while (j <= n) and (not flag) do
if s[j] = c then flag := true else j := j + 1;
if (not flag) then i := i + 1
end;
if flag then Writeln('Символ "', c, '" встречается больше одного раза')
else Writeln('Все символы разные')
end.
На языке С++:
#include <bits/stdc++.h>
using namespace std;
string s;
int main ()
{
cin >> s;
for (int i = 0; i < s.size(); ++ i)
{
for (int j = i; j < s.size(); ++ j)
{
int a = s[i] - '0';
int b = s[j] - '0';
if (a == b)
{
cout << "YES";
return 0;
}
}
}
cout << "NO";
}