Last active
August 29, 2015 13:55
-
-
Save melnaquib/8720992 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <string.h> | |
int main(int argc, char *argv[]) { | |
(void) argc; | |
(void) argv; | |
//stores the last two terms, and the new sum | |
int terms[] = {1, 2, 3}; | |
//stores indeces used to access the above array, | |
// it cycles periodically, so one time I'm summing the last two which are the 0th and 1st into 2nd term, the new one | |
//next time I sum the the last two, which now are the 2nd and the 0th into the new sum which is the 1st, so on and so forth... | |
const char INDECES[3][3] = { | |
{0, 1, 2}, | |
{1, 2, 0}, | |
{2, 0, 1} | |
}; | |
const char *indeces = INDECES[2]; | |
int TERM_MAX = 4000000; | |
long int sum = terms[1]; | |
do { | |
if(!(terms[indeces[0]] & 1)) | |
sum += terms[indeces[0]]; | |
//cycle indices | |
if(0 == indeces[0]) | |
indeces = INDECES[1]; | |
else if(1 == indeces[0]) | |
indeces = INDECES[2]; | |
else | |
indeces = INDECES[0]; | |
terms[indeces[0]] = terms[indeces[1]] + terms[indeces[2]]; | |
} while(terms[indeces[0]] < TERM_MAX); | |
fprintf(stderr, "%i", sum); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
انا دماغى لفت من الحل ده ... feeling dizzy