1475[ブルーブリッジカップ2019初戦]立方和[水題]
12645 ワード
http://oj.ecustacm.cn/problem.php?id=1475
解析:long long型を使用します.さもないと溢れ出します.
簡略化:pow()関数
さらに簡略化:テーマはすでに上位40の立方と私たちに41~2019の数を計算するだけでいいです.
解析:long long型を使用します.さもないと溢れ出します.
#include
bool judge(int n)
{
while(n)
{
int a=n%10;
if(a==2||a==0||a==1||a==9)
{
return true;
}
n=n/10;
}
return false;
}
int main(void)
{
long long unsigned int sum=1;
for(long long int i=2;i<=2019;i++)
{
if(judge(i))
sum+=i*i*i;
}
printf("%llu
",sum);
return 0;
}
簡略化:pow()関数
#include
#include
bool judge(int n)
{
while(n)
{
int a=n%10;
if(a==2||a==0||a==1||a==9)
{
return true;
}
n=n/10;
}
return false;
}
int main(void)
{
long long unsigned int sum=1;
for(long long int i=2;i<=2019;i++)
{
if(judge(i))
sum+=pow(i,3);
}
printf("%llu
",sum);
return 0;
}
さらに簡略化:テーマはすでに上位40の立方と私たちに41~2019の数を計算するだけでいいです.
#include
#include
bool judge(int n)
{
while(n)
{
int a=n%10;
if(a==2||a==0||a==1||a==9)
{
return true;
}
n=n/10;
}
return false;
}
int main(void)
{
long long unsigned int sum=400816;
for(long long int i=41;i<=2019;i++)
{
if(judge(i))
sum+=pow(i,3);
}
printf("%llu
",sum);
return 0;
}