Программа должна уметь посчитать сколько цифр с Y, содержится в N числе. Например я ввожу в прогу от 0 до 20 и пишу там же что мне нужны цифры с 2, а прога должна вывести количество таких цифр. ( ответ : 3)
Можно пожалуйста нормальным языком, как отпишешь "русским" языком, что и как должно работать, мб помогу
что тебе конкретно не понятно? Вот мне дали задание сказать сколько ЧИСЕЛ в которых есть цифры 3 либо 0 (хотябы что то одно, или сразу два ) в ЧИСЛАХ от 100 до 999 включительно, когда посчитал вручную, мне скзаали написать прогу на с++ для проверки
Попробуй напиши примерно так, загони числа в массив, естественно от 0 до 20 и потом начни их делить на десятки и единицы , например: число "12", первое число "1", второе число "2", и мы делим каждое число на "2", если при деление число число получается "1", то мы записываем данное число в массив в качестве единицы, если получается какоето другое число, то в массив мы пишем "0", тогда после этого мы складываем все числа в массиве и получатся твой ответ.
Orexa01, заёб такое делать лол :D и не факт что на больших примеров будет работать.. MrMini, Формула норм идея, ведь видно что то же число появляется один раз в 10 номеров,и легко определить ответ.. НО.. формула не будет работать потому-что от него требуеться вывести частоту номеров где есть либо одно число, либо другое, по этому формула будет считать некоторые номера 2 раза, и их пересечение нужно будет как-то вывести.. По этому лучше всего просто сделать **** версию формулы.. Решение : #include <bits/stdc++.h> using namespace std; int a,b,c,d,i,viz[100005],nr; int len(int b) { int q=0; while (b) { q++; b/=10; } return q; } int main() { cin>>a>>b; //a - первый номер, b - второй (как в твоём примере, а = 100, b = 999) cin>>c>>d; //c и d цифры которые будешь искать (в твоем примере 0 и 3) for (i=c; i<=b; i+=10) viz[i]=1; for (i=d; i<=b; i+=10) viz[i]=1; for (i=1; i<=len(b); i++) viz[c*(int)pow(10,i)]=1; for (i=1; i<=len(b); i++) viz[d*(int)pow(10,i)]=1; for (i=a; i<=b; i++) if (viz[i]==1) nr++; cout<<nr; } Код #include <bits/stdc++.h> using namespace std; int a,b,c,d,i,viz[100005],nr; int len(int b) { int q=0; while (b) { q++; b/=10; } return q; } int main() { cin>>a>>b; //a - первый номер, b - второй (как в твоём примере, а = 100, b = 999) cin>>c>>d; //c и d цифры которые будешь искать (в твоем примере 0 и 3) for (i=c; i<=b; i+=10) viz[i]=1; for (i=d; i<=b; i+=10) viz[i]=1; for (i=1; i<=len(b); i++) viz[c*(int)pow(10,i)]=1; for (i=1; i<=len(b); i++) viz[d*(int)pow(10,i)]=1; for (i=a; i<=b; i++) if (viz[i]==1) nr++; cout<<nr; } Если что-нибудь не понятно, спрашивай.