Я только начинаю программировать, и для своего первого проекта я решил написать программу для нахождения наибольшего общего делителя с использованием алгоритма евклидова деления в c.
Теперь я хочу расширить задачу, чтобы сохранить периодические отношения, остатки, дивиденды и делители, чтобы я мог их использовать.
Я думал, что могу добавить во внутренний цикл что-то, что поместит каждую из четырех переменных в одну строку массива, а затем начнет новую строку для следующей итерации цикла.
Вот что у меня так далеко.
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool =[[NSAutoreleasePool alloc]init];
NSMutableArray * numberSaver=[[NSMutableArray alloc] init];
NSNumber * q;
NSNumber * end;
NSNumber * or;
NSNumber * rem;
int a,b, divisor, dividend, quotient, remainder, temp, gcd, row;
//get the two numbers
NSLog(@"of which 2 numbers whould you like the GCD?");
scanf("%u%u", &a,&b);
//make the bigger number the dividend, smaller divisor
if (a>b) {
dividend=a;
divisor=b;
} else {
dividend=b;
divisor=a;
}
remainder=1;
row=0;
while (remainder !=0) {
quotient=1;
temp=divisor;
while (temp<dividend) {
temp+=divisor;
++quotient;
}
q=[NSNumber numberWithInt:quotient];
end=[NSNumber numberWithInt: dividend];
or=[NSNumber numberWithInt: divisor];
//set NSNumber objects q, end, or to the integer values at quotient dividend and divisor
gcd=divisor;
//This is so that we can save divisor to be the GCD and not change it to 0 before it is printed
remainder=quotient*divisor - dividend;
rem=[NSNumber numberWithInt:remainder];
//point to the remainder as an object
dividend= divisor;
divisor= remainder;
//Get dividend and divisor ready for the next loop
//I'd like to start adding the newly created NSNumbers to numberSaver here
[numberSaver addObject:quotient atIndex:row:0];
}
NSLog(@"gcd= %u",gcd);
[pool drain] ;
return 0;
}