Here is a simple solution to the fibonacci problem. The case of element 0 and element 1 are special cases, i.e. they get the whole series going and so they are dealt with in a special if. Then the while loop procedes and generates all elemnets in the series.
int sum=1, term, term1=0, term2=1; cin >>term; if (term < 2) cout<<term; else { //term--; while (term >1 ) { sum = term1 + term2; term1 = term2; term2 = sum; term--; } cout << sum; }
This is a slightly different solution which solves the problem without an if. See if you can figure how it improves on the first solution.
int main() unsigned long current = 0, prev=0, prevprev=1; int term; cout << "enter term you want :"; cin >> term; while (term) { current=prev+prevprev; prevprev=prev; prev=current; term--; } cout<<current;
Here is a clever solution to the factorial problem. Note that there is no such thing as a negative factorial, but neverthless I have made this solution to solve both negative and possitive factorial questions and I did it without using an if. And it also works for zero. How would you solve this problem had you not seen this solution?
int number, result =1; cin >> number; while (number>1) { result*=number; number--; } while (number<0) { result*=number; number++; } cout << result;
Here is a solution to finding unique pythagorean triples. I think you will find that this is the most efficient solution to the problem, short of using fancy things like square roots and powers or for that matter Platos theorum.
© Nachum Danzig 2010#define MAX 200 int main(int argc, char *argv[]) { unsigned long a, b, c, e, _2sides; for (a=1; a<MAX; a++) { for (b=a+1; b<MAX; b++) { _2sides=a+b;//No side of any triangle can ever be larger than the sum of 2 other sides for (c=b+1; c<_2sides; c++) { if ((c*c)==(a*a)+(b*b))//found a triple { for (e=2; e<a; e++) { if ((a%e)==0&&(b%e)==0&&(c%e)==0) // found reject { break; } } if (e==a) // i have gone through entire loop and found no mults { cout<<a<<", "<<b<<", "<<c<<endl; break;//don't bother searching for any more c's since I already found one } } } } } }