Code:
//Parrot sequence in C
#include<stdio.h>
#include<conio.h>
int main() {
long count(long);
long n,result;
int choice;
clrscr();
printf("Give the initial number to parrot PACO(Default:1) :");
scanf("%d",&n);
do {
result=count(n);
printf("PACO's count :%ld\n",result);
printf("Do you want to continue ?(1/0) :");
scanf("%d",&choice);
if(choice==1)
n=result;
}while(choice==1);
getch();
return 0;
}
long count(long n) {
long reverse(long);
long result=0,rev=reverse(n);
int currentDigit=0,newDigit=0,temporaryResult=0,count=0;
currentDigit=rev%10;
while(rev>0) {
newDigit=rev%10;
if(newDigit==currentDigit) {
switch(newDigit) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 0:count=count+1;break;
}
currentDigit=newDigit;
rev=rev/10;
}
else{
temporaryResult=count*10+currentDigit;
result=result*100+temporaryResult;
currentDigit=newDigit;
count=0;
}
}
temporaryResult=count*10+newDigit;
result=result*100+temporaryResult;
return(result);
}
long reverse(long n) {
int remainder;
long reverse=0;
while(n>0) {
remainder=n%10;
reverse=reverse*10+remainder;
n=n/10;
}
return(reverse);
}