Informatică, întrebare adresată de ConorExtreme, 9 ani în urmă

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 pebly
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()
Răspuns de blindseeker90
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;
}
Alte întrebări interesante