Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
De unde cumparați legume si fructe?

Samsung S21 ultra

Site-uri matrimoniale serioase

Plasa de umbrire peste gard de pl...
 O smecherie pe care nu o inteleg

Balcon parter fara acte

unde gasesc un speed bag in bucur...

Programe TV cu altfel de sporturi
 Laptop "bun la toate" max...

navigatie noua vw tiguan

ctfmon.exe - System Error (in Saf...

Ați prins vremurile cand 120 Volț...
 Whatsapp nu afișeaza numele ...

Medii admitere Politehnica Bucure...

Se extinde Baza de la Kogalniceanu

Politist mutilat de caine in curt...
 

[TEMA] lucru cu numere foarte mari

- - - - -
  • Please log in to reply
12 replies to this topic

#1
geutzu_00

geutzu_00

    Junior Member

  • Grup: Members
  • Posts: 202
  • Înscris: 02.01.2010
o sa copy-paste cerinta problemei aici.

The set of numbers raised to the 10th power is: {1, 1024, 59049, 1048576, 9765625, .... }
What we want to accomplish is when summing the digits of an element of the set, we want to keep summing until we arrive at a single digit answer. We can observe that the sum of the digits of 2^10 is 1+0+2+4 = 7. Therefore, we will say the number arrives at 7.
We also observe that the sum of the digits of 4^10 is 1+0+4+8+5+7+6 = 31 = 3+1 = 4. Here, we say the number arrives at 4 after summing the digits of the answer until we arrived at the single digit.
Using the rule of summing the digits until you arrive at a single digit, how many of the first 10,000 numbers to the 10th power arrive at 4? (Note, you are seeing the first number arriving at 4 which is 4^10).

#include <iostream>
#include <cmath>
int digit(long long int n)
{
	long long int sum=0;
	while(n!=0)
	{
		sum = sum + (n%10);
		n=n/10;
	}
	if(sum>9) digit(sum);
		else return sum;
}
int main()
{
   int count = 0; long long int n;
   for(int i=4;i<10000;i++)
   {
		n = pow(i,10);
		if(digit(n)==4) ++count;
   }
   std::cout << count;
}


functia digit calculeaza suma ciferelor unui numar pana se ajunge la o cifra si o returneaza. programul ruleaza si afiseaza 13... rezultat gresit insa.

sfaturi ?

#2
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
E o problema de mate pe care trebuie s-o implementezi in cod. (hint: vezi postul lui MarianG).
Mai mult, se pare ca nu intelegi cat de mari sunt numerele.

Edited by Cy_Cristian, 19 December 2014 - 15:05.


#3
namespace

namespace

    Active Member

  • Grup: Validating
  • Posts: 1,213
  • Înscris: 14.12.2013
Numerele sunt astronomice pentru tipul de date specificat de tine.

De la 79 in sus se depaseste capacitatea efectiva de stocare.
Totusi, sunt fix 13 numere care respecta cerinta, dar asta in intervalul [4,79).

Trebuie regandita modalitatea de reprezentare a numerelor.

[ https://i.imgur.com/yf1qr5j.png - Pentru incarcare in pagina (embed) Click aici ]

Edited by namespace, 19 December 2014 - 15:15.


#4
geutzu_00

geutzu_00

    Junior Member

  • Grup: Members
  • Posts: 202
  • Înscris: 02.01.2010

 namespace, on 19 decembrie 2014 - 15:10, said:


Trebuie regandita modalitatea de reprezentare a numerelor.

vector ? Posted Image

#5
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009

 geutzu_00, on 19 decembrie 2014 - 15:22, said:

vector ? Posted Image
Tu citesti tot? Ti-am dat un link. E cea mai buna metoda de rezolvare.

#6
magic-gabi

magic-gabi

    Senior Member

  • Grup: Senior Members
  • Posts: 2,925
  • Înscris: 04.07.2006
for ( int i = 1; i <= 10000; i++ )
	 {
		 int x = i % 9;
		 int y = pow( x, 10.0 );
		 if ( y % 9 == 4 )
		 cout << i << " ";
	 }


Dai o bere? Posted Image

Ideea nu e sa ridici numele astea la putere pentru ca ocupa foarte mult spatiu.

Edited by magic-gabi, 19 December 2014 - 15:37.


#7
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
Daca tot ti-ai aratat muschii, de ce n-ai postat rezolvarea la cerinte facuta intr-un mod eficient?

#8
magic-gabi

magic-gabi

    Senior Member

  • Grup: Senior Members
  • Posts: 2,925
  • Înscris: 04.07.2006

 Cy_Cristian, on 19 decembrie 2014 - 15:42, said:

Daca tot ti-ai aratat muschii, de ce n-ai postat rezolvarea la cerinte facuta intr-un mod eficient?
Posteaza tu Posted Image. Aici e pentru incepatori, nu pentru eficienta.

#9
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
Daca este arie de incepatori, atunci te rog sa demonstrezi corectitudinea codului.

#10
magic-gabi

magic-gabi

    Senior Member

  • Grup: Senior Members
  • Posts: 2,925
  • Înscris: 04.07.2006

 Cy_Cristian, on 19 decembrie 2014 - 15:48, said:

Daca este arie de incepatori, atunci te rog sa demonstrezi corectitudinea codului.
Tu ai ceva cu mine? Posted Image

Cifra de control a lui NR este CC(NR) = NR mod 9
Deci cifra de control a lui NR la puterea X este CC(NR^X) = CC(CC(NR)^X)

#11
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
N-am nimic cu tine. Nu sunt pentru atacurile la persoana ci doar pentru discutarea ideilor.
Am ceva cu posturile in care se tranteste un cod si nu o idee sau sugestie. Iar pentru acele posturi as da warn.


Pt asta CC(NR^X) = CC(CC(NR)^X) iti trebuie o mica demonstratie.

#12
magic-gabi

magic-gabi

    Senior Member

  • Grup: Senior Members
  • Posts: 2,925
  • Înscris: 04.07.2006
Exagerezi in ultimul hal. Warn? Serios? Chiar m-am bazat pe linkul pe care i l-ai oferit si am presupus ca a citit despre cifra de control. Temele astea nu ti le dau la scoala fara un context. Puteam sa pun toata solutia pe o linie, atat de simpla este.

Demonstratia sta in faptul ca CC(X*Y)=CC(CC(X)*CC(Y))

edit:
folosisem A si B dar mi-a pus ochelaristul Posted Image

Edited by magic-gabi, 19 December 2014 - 16:06.


#13
geutzu_00

geutzu_00

    Junior Member

  • Grup: Members
  • Posts: 202
  • Înscris: 02.01.2010

 magic-gabi, on 19 decembrie 2014 - 15:35, said:

Dai o bere? Posted Image
Dau.

Multumesc pentru raspunsuri baieti.

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate