A number is called a duck number if the number contains at least one zero, but the number should not start with 0.
For example, if we consider a number 20150, here two zeroes are present in the number, but it does not start with zero. Therefore, the number is a duck number.
But if we consider a number 02509, the number contains two zeroes but it starts at 0, therefore, it is not a duck number.
If the number is 1234, it does not contain any zero; therefore, it is not a duck number.
The number is taken here as the input, then the number of zeroes is counted. If the count is greater than 0 and it does not start with 0 then the number is a duck number otherwise not.
INPUT: A number
OUTPUT: Whether the number is a duck number or not.
PROCESS:
Step 1: [Taking the input]
Read n [The number to be checked]
Step 2: [Checking for duck number]
Set c<-0
[Finding the length of the number]
Set n<-length of the string stored in variable ‘s’
For i=0 to n-1 repeat
[Counting the number of zeroes present in the number]
If s[i]='0' then
Set c<-c+1
[End of ‘if’]
[End of ‘for’ loop]
[Checking for the duck number]
If s[0]≠'0' and c>0 then
Print "The given number is a duck number"
Else
Print "The given number is not a duck number"
[End of ‘if-else’]
Step 3: Stop.
for(i=0;i<n;i++)------------------------------------O(n)
{ //counting the number of zeroes present
//in the number
if(s[i]=='0')------------------------------O(1)
c++;
}
//checking for the duck number
if(s[0]!='0'&&c>0)-------------------------------O(1)
printf("The given number is a duck number");
else
printf("The given number is not a duck number");
The time complexity of this program is O(n) where ‘n’ is the number of digits of the input number to be checked as the duck number.
The space complexity of this program is O(1) as it requires a fixed number of memory space to execute the program for any given number.