napisalemDodatnią liczbę całkowitą nazywamy szaloną, jeśli zawiera co najwyżej i cyfr równych i (dla i=1..9) (innymi słowy, jeśli co najwyżej jedna z jej cyfr to 1 oraz jeśli co najwyżej 2 z jej cyfr to 2 itd.).
Twoim zadaniem będzie znalezienie dla danych dwóch liczb całkowitych a,b liczby szalonych liczb nie mniejszych niż a oraz nie większych niż b.
Zadanie
Napisz program, który:
wczyta ze standardowego wejścia liczby naturalne a,b,
wypisze na standardowe wyjście liczbę szalonych liczb z przedziału [a,b].
Wejście
W jedynym wierszu wejścia znajdują się dwie liczby całkowite a, b
(1<=a<=b<=2000 000 000) oddzielone pojedynczym odstępem.
Wyjście
W jedynym wierszu wyjścia należy wypisać liczbę szalonych liczb z przedziału [a,b].
Przykład
Dla danych wejściowych:
1 11
poprawną odpowiedzią jest:
10
Kod: Zaznacz cały
#include<iostream>
using namespace std;
int t[10];
int liczba(int a)
{
int c,d=0;
while(a>0)
{
c=a%10;
t[c]++;
a=a/10;
}
for(int i=1;i<10;i++)
{
if(t[i]<=i)
d++;
}
if(d==9) return 1;
else return 0;
}
int main()
{
int a,b,e=0;
cin>>a>>b;
for (int i=a;i<=b;i++)
{
e=e+liczba(i);
}
cout<<e;
getchar();getchar();return 0;
}
mógłby mi ktoś pomóc