Check the results of CsCode Programming Contest 3, click here.
Contest pattern: 2 Programming Questions and 5 MCQ’s.
Contest was organised by @Computer_Science_Engineering .
Answers of MCQ questions
1)
What will be the output of above C program?
Choices
- 123
- 1
- 321123 Correct answer
- 32123
2)
Above code defines which concept?
Choices
- Iteration
- Simple function call
- Recursion Correct answer
- Conditional Statement
3)
What is the time complexity of code below?
Choices
- O(n)
- O(200)
- O(n-200)
- O(1) Correct answer
Check this post for explanation
4)
Tailed recursive functions are slower than non-tailed recursive functions.
Above statement is correct or incorrect?
Choices
- Correct
- Incorrect Correct answer
Check following post for explanation.
5)
Choose the correct output
Choices
- Error Correct answer
- 4
- 3
- 2
Hint:
Solutions of Programming Questions
1) Perfect Number
Problem statement
Write a program to check whether the given number is a perfect number or not. The program should print 1 if the number is a perfect number, else it should print 0.
Hint: Perfect number is a positive whole number that is equal to the sum of its proper divisors.
The first perfect number is 6 as the sum of its proper positive divisors, 1,2 and 3 is 6. Other perfect numbers are 28, 496 and so on.
Input Format:
First line of input contains T test cases.
For each test case,
a positive integer on new line
Output:
Display 1 if number is perfect else 0 for each numbes on new line.
Constraints:
1 <= T <= 1000
1<= Number <= 100000
Solution:
def check_perfect_number(number): if number == 1: return False sum_ = 1 for i in range(2, number//2+2): if number%i == 0: sum_ += i if sum_ == number: return True return False for _ in range(int(input())): number = int(input()) if check_perfect_number(number): print(1) else: print(0)
def isPerfect(n): s = 1 i = 2 while i*i <= n: if(n % i ==0): if n//i == i: s = s+i else: s = s + i + n//i i += 1 return (1 if s == n and n!=1 else 0) for i in range(int(input())): n = int(input()) if isPerfect(n): print(1) else: print(0)
// By kamesh upmanyu #include<bits/stdc++.h> using namespace std; bool check(int n) { if(n==1||n==0) return 0; int res=0; for(int i=2;i<=sqrt(n);i++) { if(n%i==0) { if(i==(n/i)) res+=i; else res+=(i+(n/i)); } } if(res+1==n) return 1; return 0; } int main() { int t,n; cin>>t; while(t--) { cin>>n; cout<<check(n)<<"\n"; } }
2) Special Sequence – Count Numbers
Problem statement
The following sequence is formed using words and numbers:
- First number is 1
- In the first number, there was one 1 so the second number is 11.
- In the second number, there was two 1s, so the third number is 21
- Like that the fourth number is 1211 (one 2 and one 1)
- The next number is 111221 (one 1, one 2, two 1’s).
This sequence can continue infinitely. Given an integer, q[i], determine the sum of digits of the value in the sequence at that position. For example, position 4 contains the value 1211. The sum of those digits is 1+2+1+1 = 5.
Constraints:
1 <= n <= 1000
1 <= q[i] <= 54
Input Format:
The first line contains an integer n (total number of queries).
Next n lines contains an integer q[i].
Output Format:
n lines denoting sum of digits of sequence at q[i]
Check the sample test case solution for more information about output.
Sample Input:
2
2
4
Sample Output:
2
5
Explanation:
The sequence is 1, 11, 21, 1211, 111221 and so on.
The sum of digits of element at 2nd(11) and 4th(1211) position in the sequence are 2, 5.
Solution:
sumOfDigits = [0 for _ in range(56)] sumOfDigits[1] = 1 firstNumber = '11' for i in range(1, 55): sum_ = 0 for no in firstNumber: sum_ += int(no) sumOfDigits[i+1] = sum_ nextNumber = '' j=1 count = 1 for j in range(1, len(firstNumber)): if firstNumber[j] == firstNumber[j-1]: count += 1 else: nextNumber += str(count)+firstNumber[j-1] count = 1 nextNumber += str(count)+firstNumber[-1] firstNumber = nextNumber #input for _ in range(int(input())): print(sumOfDigits[int(input())])
//By kamesh upmanyu #include<bits/stdc++.h> using namespace std; string v[55];; void create() { v[1]=to_string(1); for(int i=2;i<=54;i++) { string str=v[i-1]; string res=""; for(int j=0;j<str.length();j++) { int c=1; while(str[j]==str[j+1]) { c++;j++;} res+=to_string(c)+str[j]; } v[i]=res; } } int main() { create(); int t,n; cin>>t; while(t--){ int s=0; cin>>n; string str=v[n]; for(int i=0;i<str.length();i++) { s+=str[i]-'0'; } cout<<s<<"\n"; } }
If you have any doubts, ask us on Instagram or comment below.