more efficient way of this program

This program is running but I am looking for a more efficient way to run this program.
You can see I commented out the code because I think it can work out without that extra code. however, I am a little bit confused.
in the else statement, I am trying to decrement the x value so it becomes x=8 and runs the loop again and decrement again.
But it is not working.
can anyone help me what should I do? thanks.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  #include <iostream>
#include <cmath>

using namespace std;

int main()
{
	int x, y;

	if (x = 9) {
		for (y = 0; y < 9; y++)
			if (3 * pow (x, 2) + 4* pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
			else {
				x--;
				
			}
	}
/*	 if (x = 8) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 7) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 6) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 5) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 4) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 3) {
		 for (y = 0; y < 9; y++)
			 if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				 cout << "x value is : " << x << endl << "y value is: " << y << endl;;
	}
	 if (x = 2) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout << "x value is : " << x << endl << "y value is: " << y<<endl;
	}
	 if (x = 1) {
		for (y = 0; y < 9; y++)
			if (3 * pow(x, 2) + 4 * pow(y, 2) == 271)
				cout <<"x value is : "<< x <<endl<<"y value is: "<< y<<endl;
	}

	*/

	system("pause");
	return 0;
}
What is the value of x before line 10?
What is the value of x after line 10?

What is the difference of = and == ?


[EDIT] DO not doublepost. The other thread: http://www.cplusplus.com/forum/beginner/222641/
Last edited on
pow is slower than X*X for squared values.

if (x = 9)
this is an assignment statement that always evaluates to true. Remove the if, or make it a comparison, depending on what you intended. (did you mean ==)

print statements are relatively slow. You can queue them up into a vector, remove them entirely, redirect the program to a text file, or whatever but they are often a bottleneck. Print statements contain a LOT of hidden iteration.

why are you trying to make this efficient anyway? It looks like it would run in about 1/2 a nanosecond as-is.





Last edited on
1
2
3
for(int x=9; x>0; --x)
   for(int y = 0; y < 9; ++y)
      //... 



> can anyone help me what should I do?
¿what are you trying to solve?
Topic archived. No new replies allowed.