-
Code inline float multiply(float number1, float number2 ) { float answer = 0; while( number2 > 0 ) { answer += number1; number2--; } return answer; } float squared(float number) { if( number < 0 ) number = -number; int decimal_positions = 0; while( number - int(number) > 0.1 ) { number = multiply(number, 10); decimal_positions++; } float factor = number; if( decimal_positions > 0 ) { number = multiply(number,number); switch (decimal_positions){ case 1: factor = 0.01; break; case 2: factor = 0.001; break; case 3: factor = 0.0001; break; case 4: factor = 0.00001; }} return multiply(factor,number); }
Test Cases Describe(squared_tests) { It(squared0_is0) { Assert::That(squared(0), Equals(0)); } It(squaredNegative0Dot5_is0Dot25) { Assert::That(squared(-0.5), EqualsWithDelta(0.25, 0.00001)); } It(squared1_is1) { Assert::That(squared(1), Equals(1)); } It(squared2_is4) { Assert::That(squared(2), Equals(4)); } It(squared3_is9) { Assert::That(squared(3), Equals(9)); } It(squared4_is16) { Assert::That(squared(4), Equals(16)); } It(squared10_is100) { Assert::That(squared(10), Equals(100)); } It(squared15_is225) { Assert::That(squared(15), Equals(225)); } It(squared21_is441) { Assert::That(squared(21), Equals(441)); } It(squared101_is10201) { Assert::That(squared(101), Equals(10201)); } };
Output:
-
Code inline int multiply(int x, int y, int counter)- inline float multiply(float number1, float number2 )
- {
if (y <= 0)return 0;if (y == 1)return x;if (y & 0x1)return x + multiply(x, y - 1, 0);if (counter + counter <= y)return multiply(x + x, y >> 1, counter + counter);elsereturn x + multiply(x, y - counter, 0);- float answer = 0;
- while( number2 > 0 )
- {
- answer += number1;
- number2--;
- }
- return answer;
- }
int squared(int number)- float squared(float number)
- {
return multiply(number, number, 0);- if( number < 0 ) number = -number;
- int decimal_positions = 0;
- while( number - int(number) > 0.1 )
- {
- number = multiply(number, 10);
- decimal_positions++;
- }
- float factor = number;
- if( decimal_positions > 0 ) {
- number = multiply(number,number);
- switch (decimal_positions){
- case 1: factor = 0.01; break;
- case 2: factor = 0.001; break;
- case 3: factor = 0.0001; break;
- case 4: factor = 0.00001;
- }}
- return multiply(factor,number);
- }
Test Cases - Describe(squared_tests)
- {
- It(squared0_is0)
- {
- Assert::That(squared(0), Equals(0));
- }
- It(squaredNegative0Dot5_is0Dot25)
- {
- Assert::That(squared(-0.5), EqualsWithDelta(0.25, 0.00001));
- }
- It(squared1_is1)
- {
- Assert::That(squared(1), Equals(1));
- }
- It(squared2_is4)
- {
- Assert::That(squared(2), Equals(4));
- }
- It(squared3_is9)
- {
- Assert::That(squared(3), Equals(9));
- }
- It(squared4_is16)
- {
- Assert::That(squared(4), Equals(16));
- }
- It(squared10_is100)
- {
- Assert::That(squared(10), Equals(100));
- }
- It(squared15_is225)
- {
- Assert::That(squared(15), Equals(225));
- }
- It(squared21_is441)
- {
- Assert::That(squared(21), Equals(441));
- }
- It(squared101_is10201)
- {
- Assert::That(squared(101), Equals(10201));
- }
- };
- All
- {{group.name}} ({{group.count}})
This comment has been reported as {{ abuseKindText }}.
Show
This comment has been hidden. You can view it now .
This comment can not be viewed.
- |
- Reply
- Edit
- View Solution
- Expand 1 Reply Expand {{ comments?.length }} replies
- Collapse
- Remove
- Remove comment & replies
- Report
{{ fetchSolutionsError }}