Forumul Scientia

IT şi electronică => Programare => Subiect creat de: Sam din Mai 15, 2011, 09:10:21 PM

Titlu: Problema programare C++ cls.9
Scris de: Sam din Mai 15, 2011, 09:10:21 PM
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
Titlu: Răspuns: Problema programare C++ cls.9
Scris de: Sam din Mai 15, 2011, 09:30:52 PM
Zice-ti-mi ce am gresit si corectati-mi algoritmul va rog :)!!!!!!
Titlu: Răspuns: Problema programare C++ cls.9
Scris de: Quantum din Mai 15, 2011, 10:22:29 PM
Pentru eroarea la citire incearca sa folosesti:

# include <iostream>
using namespace std;

Din pacate nu stiu ce inseamna numere autopomorfice.
Titlu: Răspuns: Problema programare C++ cls.9
Scris de: Electron din Mai 15, 2011, 10:36:54 PM
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-
Titlu: Răspuns: Problema programare C++ cls.9
Scris de: Adi din Mai 15, 2011, 10:46:32 PM
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.
Titlu: Răspuns: Problema programare C++ cls.9
Scris de: AlexandruLazar din Mai 15, 2011, 11:02:02 PM
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.
Titlu: Răspuns: Problema programare C++ cls.9
Scris de: tavy din Mai 16, 2011, 12:18:56 AM
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.