У меня есть ссылка на вопрос. Извините за все неприятности.Project Euler 145 in C
https://www.hackerrank.com/contests/projecteuler/challenges/euler145
В приведенном выше вопрос, когда п 1000, то результат будет 120, который является правильным, но при п = 948 результат все равно 120, который является неправильным.
# include <stdio.h>
# include <math.h>
int check(int n)
{
if(n%10==0)
{
return 0;
}
else
{
return 1;
}
}
int rev(int n)
{
int s=0;
while(n!=0)
{
s=s*10+n%10;
n=n/10;
}
return s;
}
int count(int a)
{
int c=0;
while(a!=0)
{
c++;
a=a/10;
}
return c;
}
int odd(int k)
{
if(k%2!=0)
{
return 1;
}
else
{
return 0;
}
}
int digit(int n,int p)
{
int k=0,c=0;
while(n!=0)
{
k=n%10;
if(odd(k)==1)
{
c++;
}
n=n/10;
}
if(c==p)
{
return 1;
}
else
{
return 0;
}
}
int result(int n)
{
int s=0,k=0,i=1,m=0,j=0;
for(i=0;i<n;i++)
{
if(check(i)==1)
{
s=i+rev(i);
k=count(s);
m=digit(s,k);
if(m==1)
{
j++;
}
}
}
return j;
}
int main()
{
int n=0,t=0,p=0,k=0,c=1,a[1000],i;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d",&n);
a[i]=result(n);
}
for(i=0;i<t;i++)
{
printf("\n %d",a[i]);
}
return 0;
}
Пожалуйста, помогите мне в решении этой проблемы и как я полный новичок в C (я изучаю C в течение последних трех недель), мой код, безусловно, не самый лучший код, который вы найдете на сеть. Любая помощь будет оценена по достоинству.
Хорошей отправной точкой будет научиться отступа кода последовательно, так что вы и другие могут на самом деле читать. –
Я бы порекомендовал хотя бы проблему, но не только ссылку на нее в названии "Project Euler 145" – YakovL