for_maniac
17-11-2005, 19:32
Hi @ all
ich bräuchte hilfe bei diesem bruteforce Programm(siehe unten).
Die Aufgabe dazu lautet: send+more=money welche zahl steht für welchen buchstaben damit der ausdruck war ist?
a) Meine Frage kann man das Programm noch besser, schöner übersichtlicher machen?
b) in der test funktion bei der if anweisung würde ich gerne auch noch prüfen ob alle variablen unterschiedlich sind, wie macht man das ohne alles einzeln einzugeben (also s1 != e1, s1 != o1, usw. das wird zu unübersichtlich)
#include<stdio.h>
int main(){
int s,e,n,d,m,o,r,y;
for(s=0;s<=9;s++){
for(e=0;e<=9;e++){
for(n=0;n<=9;n++){
for(d=0;d<=9;d++){
for(m=0;m<=9;m++){
for(o=0;o<=9;o++){
for(r=0;r<=9;r++){
for(y=0;y<=9;y++){test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
scanf("%l",&s);
return 0;
}
int test(s1,e1,n1,d1,m1,o1,r1,y1){
int sum1,sum2,sum3,erg;
sum1 = 1000*s1 + 100*e1 +10*n1 + d1 ;
sum2 = 1000*m1 + 100*o1 +10*r1 + e1 ;
erg = 10000*m1 + 1000*o1 +100*n1 +10*e1 +y1;
sum3 = sum1 +sum2;
if(sum3 =! 0 && sum3 == erg && sum3 >= 10000){printf(" send\n %i\n+ more\n %i\n------\n money\n %i\n\n",sum1,sum2,erg);}
return 0;}
MFG for_maniac
ich bräuchte hilfe bei diesem bruteforce Programm(siehe unten).
Die Aufgabe dazu lautet: send+more=money welche zahl steht für welchen buchstaben damit der ausdruck war ist?
a) Meine Frage kann man das Programm noch besser, schöner übersichtlicher machen?
b) in der test funktion bei der if anweisung würde ich gerne auch noch prüfen ob alle variablen unterschiedlich sind, wie macht man das ohne alles einzeln einzugeben (also s1 != e1, s1 != o1, usw. das wird zu unübersichtlich)
#include<stdio.h>
int main(){
int s,e,n,d,m,o,r,y;
for(s=0;s<=9;s++){
for(e=0;e<=9;e++){
for(n=0;n<=9;n++){
for(d=0;d<=9;d++){
for(m=0;m<=9;m++){
for(o=0;o<=9;o++){
for(r=0;r<=9;r++){
for(y=0;y<=9;y++){test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
test(s,e,n,d,m,o,r,y);}
scanf("%l",&s);
return 0;
}
int test(s1,e1,n1,d1,m1,o1,r1,y1){
int sum1,sum2,sum3,erg;
sum1 = 1000*s1 + 100*e1 +10*n1 + d1 ;
sum2 = 1000*m1 + 100*o1 +10*r1 + e1 ;
erg = 10000*m1 + 1000*o1 +100*n1 +10*e1 +y1;
sum3 = sum1 +sum2;
if(sum3 =! 0 && sum3 == erg && sum3 >= 10000){printf(" send\n %i\n+ more\n %i\n------\n money\n %i\n\n",sum1,sum2,erg);}
return 0;}
MFG for_maniac