Zadanie z policzeniem ile razy występuje dana cyfra w liczbie

0

Słuchajcie mam napisać program, który policzy nam dowolną potęgę o podstawie 13 i po otrzymaniu wyniku sprawdzi nam ile razy w tej liczbie pojawiła się liczba 1. Do momentu potęgi zrobiłem bez problemu, później poległem. Ma ktoś jakieś pomysły? program w C++

0
int main() {
    
    int p;
    int w;
    cin >> p >> w;
    
    int wynik = pow(p,w);
    
  
    return 0;
} 

i to by było na tyle

3

Tak można:

 
#include <iostream>
#include <string>
int main()
{
	int liczba = 1234981331;
	std::string lanuch = std::to_string(liczba);

	int licznik = 0;
	for (int i = 0; i < lanuch.length(); i++)
		if (lanuch[i] == '1') licznik++;
	std::cout << licznik << std::endl;
}

https://ideone.com/jFZ67M

Działa dla liczb całkowitych. Dla double czy float wynik zostanie zaokrąglony przy konwersji na stringa z uwagi na nieskończoną okresowość ułamka binarnego po konwersji z liczby dziesiętnej. Nie ma dla liczb zmiennoprzecinkowych idealnego rozwiązania i (prawie) zawsze dane zostaną utracone.

3
#include <iostream>
#include <string>
using namespace std;

int main() {
	int num = 123432456;
	string str = to_string(num);
	int digits[10] = {0};
	for(char c : str)
		digits[c-'0'] += 1;
	
	for(size_t i = 0; i < 10; ++i)
		cout << i << ": " << digits[i] << endl;
	return 0;
}
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
	int num = 1234324561;
	string str = to_string(num);
	cout << count(begin(str), end(str), '1');
	return 0;
}
3
int a = 123456931;
string s = to_string(a);
cout << count(begin(s), end(s), '1') << endl;
0

wielkie dzięki za przykłady!

1

Twój program nie spełnia warunków zadania.

który policzy nam dowolną potęgę o podstawie 13

1 użytkowników online, w tym zalogowanych: 0, gości: 1