Din fisierul rest.in se citeste un nr natural.Sa se scrie in rest.out cel mai mare rest care se poate obtine prin impartirea nr citit la toate nr obtinute din n prin eliminarea unei cifre.
sa faceti in c++ cu fstream
Răspunsuri la întrebare
Răspuns de
0
n = open("rest.in", "r")
a = n.readtext()
n = n \ number
r = open("rest.in", "w")
b = r.write(n)
a.close()
b.close()
a = n.readtext()
n = n \ number
r = open("rest.in", "w")
b = r.write(n)
a.close()
b.close()
Răspuns de
0
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main(){
//prima_cifra devine 1 atunci cand am extras prima cifra
int n,decimala=1,rest,max_rest,prima_cifra=0;
double impartitor,valoare;
ifstream ifr("rest.in");
ofstream ofr("rest.out");
ifr>>n;
//formam primul impartitor care este numarul fara ultima cifra
impartitor=n/10;
//restul maxim este primul rest
max_rest=n%(int)impartitor;
//cat timp nu am ajuns sa eliminam prima cifra
while(prima_cifra<1){
//verificam daca am ajuns la prima cifra
//(int) converteste valoarea in int, pow(x,y) calculeaza x^y
if((n/(int)pow(10,decimala+1))==0){
prima_cifra=1;
}
//calculam noul impatitor pentru n=457921 si decimala=1, avem atunci
//n=4579*10+1 si am eliminat a doua cifra.
//prin marirea decimalei, mai eliminam cate o cifra mai la stanga din sir
//pana ajungem la prima cifra
impartitor=(n/(int)pow(10,decimala+1))*pow(10,decimala)+n%(int)pow(10,decimala);
rest=n%(int)impartitor;
//cout<<impartitor<<" "<<rest<<endl;
if(rest>max_rest){
max_rest=rest;
}
decimala++;
}
ofr<<max_rest;
return 0;
}
#include <fstream>
#include <cmath>
using namespace std;
int main(){
//prima_cifra devine 1 atunci cand am extras prima cifra
int n,decimala=1,rest,max_rest,prima_cifra=0;
double impartitor,valoare;
ifstream ifr("rest.in");
ofstream ofr("rest.out");
ifr>>n;
//formam primul impartitor care este numarul fara ultima cifra
impartitor=n/10;
//restul maxim este primul rest
max_rest=n%(int)impartitor;
//cat timp nu am ajuns sa eliminam prima cifra
while(prima_cifra<1){
//verificam daca am ajuns la prima cifra
//(int) converteste valoarea in int, pow(x,y) calculeaza x^y
if((n/(int)pow(10,decimala+1))==0){
prima_cifra=1;
}
//calculam noul impatitor pentru n=457921 si decimala=1, avem atunci
//n=4579*10+1 si am eliminat a doua cifra.
//prin marirea decimalei, mai eliminam cate o cifra mai la stanga din sir
//pana ajungem la prima cifra
impartitor=(n/(int)pow(10,decimala+1))*pow(10,decimala)+n%(int)pow(10,decimala);
rest=n%(int)impartitor;
//cout<<impartitor<<" "<<rest<<endl;
if(rest>max_rest){
max_rest=rest;
}
decimala++;
}
ofr<<max_rest;
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă