Hi, you haven't provided the programing language in which you need the code, I'll explain how to do it using Python, and you can follow the same logic to make a program in the programing language that you need.
Answer:
import math
def rectangle(perimeter, area):
l1_1 = (perimeter+math.sqrt((perimeter**2)-(16*area)))/4
l1_2 = (perimeter-math.sqrt((perimeter**2)-(16*area)))/4
l2_1 = area/l1_1
l2_2 = area/l1_2
print(l1_1,l2_1)
print(l1_2,l2_2)
if l1_1.is_integer() and l2_1.is_integer() and l1_1>0 and l2_1>0:
return(int(max(l1_1,l2_1)))
elif l1_2.is_integer() and l2_2.is_integer() and l1_2>0 and l2_2>0:
return(int(max(l1_2,l2_2)))
else:
return(None)
Explanation:
- We import math to make basic operations
- We define the rectangle function that receives perimeter and area
- We calculate one of the sides (l1_1) of the rectangle using the quadratic equation to solve 2h^2 - ph + 2a = 0
- We calculate the second root of the quadratic equation for the same side (l1_2)
- We calculate the second side of the rectangle using the first root on w = a/h
- We calculate the second side of the rectangle using the second root on w= a/h
- We verify that each component of the first result (l1_1, l2_1) is an integer (using the build-in method .is_integer) and greater than 0, if True we return the maximum value between them (using the max function) as w
- If the first pair of sides evaluate to False we check the second root of the equation and if they meet the specification we return the max value
- if all the if statements evaluate to false we return None to indicate that not positive or integer sides were found
The answer is A, or Locating bottlenecks in a network.
Answer:
Check the explanation
Explanation:
Keep two iterators, i (for nuts array) and j (for bolts array).
while(i < n and j < n) {
if nuts[i] == bolts[j] {
We have a case where sizes match, output/return
}
else if nuts[i] < bolts[j] {
what this means is that the size of nut is lesser than that of bolt and we should go to the next bigger nut, i.e., i+=1
}
else {
what this means is that the size of bolt is lesser than that of nut and we should go to the next bigger bolt, i.e., j+=1
}
}
Since we go to each index in both the array only once, the algorithm take O(n) time.
Answer:
#include <iostream>
using namespace std;
int main()
{
char fullname[30];
string fname="",lname="";
int i,j;
cout<<"Enter fullname\n";
cin.getline(fullname,30); //so that blank can be read
for(i=0;fullname[i]!=' ';i++)
fname+=fullname[i]; //fistname will be saved
cout<<"\n";
for(j=i;fullname[j]!='\0';j++)
lname+=fullname[j]; //lastname will be saved
cout<<"\nFirstname : "<<fname<<"\nLastname : "<<lname;
return 0;
}
OUTPUT :
Enter fullname
John thomson
Firstname : John
Lastname : thomson
Explanation:
cin.getline() should be used instead of cin in case of strings so that space can be read otherwise after blank string will be ignored.