You are viewing a single comment's thread. Return to all comments →
now why time out i even reduced the complexity before by checking if either of first or last digit odd and even
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int isdigitsodd(unsigned long long num); int main() { unsigned long long number,reverse=0,sum=0,i,count=0,k,powervalue,logvalue,fd; int T,j,dig; scanf("%d",&T); for(j=1;j<=T;j++) { count=0; scanf("%llu",&number); for(i=11;i<number;i++) { k=i;reverse=0; logvalue=log10(i); powervalue=pow(10,logvalue); fd=i/powervalue; if(i%10==0) { ;} else if(((i%2)==0&&fd%2==1)||((i%2)==1&&fd%2==0)) { while(k!=0) { dig=k%10; reverse=reverse*10+dig; k/=10; } sum=reverse+i; if(isdigitsodd(sum)==1) { count++;} } } printf("%llu\n",count); } return 0; } int isdigitsodd(unsigned long long num) { int flag=0,dig=0; while(num!=0) { dig=num%10; if(dig%2==1) flag=1; else {flag=0;break;} num/=10; } if(flag==1) return 1; else return 0; }
Seems like cookies are disabled on this browser, please enable them to open this website
Project Euler #145: How many reversible numbers are there below one-billion?
You are viewing a single comment's thread. Return to all comments →
now why time out i even reduced the complexity before by checking if either of first or last digit odd and even