Ştiri:

Vă rugăm să citiţi Regulamentul de utilizare a forumului Scientia în secţiunea intitulată "Regulamentul de utilizare a forumului. CITEŞTE-L!".

Main Menu

Problema programare C++ cls.9

Creat de Sam, Mai 15, 2011, 09:10:21 PM

« precedentul - următorul »

0 Membri şi 1 Vizitator vizualizează acest subiect.

Sam

buna am si eu nevoie de rezolvarea de la exercitiul acesta:
"Sa se afle toate numerele autopomorfice mai mici sau egale cu n dat."
eu am resuit sa scriu doar atata dar imi da eroare la citire///

#include<IOSTREAM.H>
#include<math.h>
void main()
{
   int n,s,d,i;
   cout<<"\n Dati n";
   cin>>n;
   i=1;
   do
   {
      s=0;
      d=1;
      do
      {
         s+=d%10;
         d/=10;
      }while(d);
      if(sqrt(s)==floor(sqrt(s))) cout<<"\n s="<<s<<"i=";
      i++;
   }while(i<=n);
}



Am lucrat in Boreland C++ 3.1

Sam

Zice-ti-mi ce am gresit si corectati-mi algoritmul va rog :)!!!!!!

Quantum

Pentru eroarea la citire incearca sa folosesti:

# include <iostream>
using namespace std;

Din pacate nu stiu ce inseamna numere autopomorfice.

Electron

Citat din: Sam din Mai 15, 2011, 09:30:52 PM
Zice-ti-mi ce am gresit [...]
In mod ironic, ai gresit chiar si in aceasta cerere ...

e-
Don't believe everything you think.

Adi

Nici eu nu stiu ce inseamna numere autopomorfice. Ca sa te ajutam, trebuie intai sa ni le definesti, apoi sa explici algoritmul tau in cuvinte si abia apoi sa ne arati implementarea codului. Caci poate nu stii definitia corect, sau poate o stii dar ai implementat algoritmul gresit, sau poate ai implementat corect algoritmului dar ai gresit la programare.
Pagina personala: http://adrianbuzatu.ro

AlexandruLazar

#5
Wikipedia zice așa:

CitatIn mathematics an automorphic number (sometimes referred to as a circular number) is a number whose square "ends" in the same digits as number itself. For example, 52 = 25, 762 = 5776, and 8906252 = 793212890625, so 5, 76 and 890625 are all automorphic numbers.

Mai departe de aici mi-e cam greu să spun care e problema fără a ști care e acea eroare pe care o dă la citire, și ce înseamnă că "dă eroare la citire" -- apare vreo eroare când citești numărul în consolă? Sau la compilare? Sau unde?

Edit: totuși prima mea intuiție e că probabil #include<IOSTREAM.H> trebuia să fie #include <iostream.h> . Algoritmul e la nivel de clasa a noua.

tavy

Dacă am înțeles bine definiția dată de Alexandru, pe un compilator din secolul nostru programul ar putea arăta așa:

#include <iostream>
using namespace std;
int main(){
  unsigned i,j,k,n;
  cout<<"? n=";
  cin>>n;
  for(i=1;i<=n;i++){
    for(k=(j=i)*i;j>0;k/=10,j/=10)if(k%10-j%10)break;
    if(!j)cout<<i<<'*'<<i<<'='<<i*i<<endl;
  }
  return 0;
}

Pe Borland C++ 3.1 ar arăta așa:

#include <iostream.h>
#include <math.h>
int main(){
  unsigned i,j,k,n;
  cout<<"? n=";
  cin>>n;
  for(i=1;i<=n;i++){
    for(k=(j=i)*i;j>0;k/=10,j/=10)if(k%10-j%10)break;
    if(!j)cout<<i<<'*'<<i<<'='<<i*i<<endl;
  }
  return 0;
}

Nu am posibilitatea să verific pe Borland.