私は質問へのリンクを与えています。ご面倒をおかけしてすみません。上記の質問、1000はnがでプロジェクトオイラー145 in C
https://www.hackerrank.com/contests/projecteuler/challenges/euler145
、結果が正確であるが、場合N = 948の結果が間違っている依然として120で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;
}
問題を解決するために私を助けて、私は(私は最後の3週間Cを学習されている)C に完全な新人だとして、私のコードは間違いなくあなたが上で見つける最高のコードではありませんしてくださいネット。 助けていただければ幸いです。
でなければなりません。 –
私は少なくともここに問題を置くことをお勧めします。タイトルは "Project Euler 145" – YakovL