Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
The Tattooist of Auschwitz (2024)

Se poate recupera numar de telefo...

Upgrade de la MacBook Pro M1 cu 8...

Ce tip de monitor am nevoie pt of...
 Resoftare camera supraveghere

Cu ce va aparati de cainii agresi...

Nu imi platiti coletul cu cardul ...

Exista vreun plan de terorizare p...
 Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 

[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

View Postnamespace, 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

View Postgeutzu_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

View PostCy_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

View PostCy_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

View Postmagic-gabi, on 19 decembrie 2014 - 15:35, said:

Dai o bere? Posted Image
Dau.

Multumesc pentru raspunsuri baieti.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

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