如題
請各位大大幫忙
謝謝
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int f(int a)
{
int k=1;
if(a==0)
{
return 1;
}
else
{
for(int i=0;i<a;i++)
k=k*10;
return k;
}
}
int main()
{
char a[80000];
long long int list[50000]={0};
list[0]=1;
int m[9];
m[0]=1; m[1]=5; m[2]=10; m[3]=20; m[4]=50;
m[5]=100; m[6]=200; m[7]=500; m[8]=1000; m[9]=2000;
for(int i=0;i<10;i++)
{
for(int j=m[i];j<=50000;j++)
{
list[j]=list[j]+list[j-m[i]];
}
}
while(gets(a))
{
int n=0,total=0;
if(a[0]!='0')
{
for(int i=0;i<strlen(a);i++)
{
if(a[i]==' ')
{
for(int j=n;j<i;j++)
total+=((int)a[j]-48)*f(i-j-1);
n=i+1;
}
else if(i==strlen(a)-1)
{
for(int j=n;j<=i;j++)
total+=((int)a[j]-48)*f(i-j);
}
}
cout<<list[total]-1<<endl;
}
}
return 0;
}
第 1 測資點(100%): WA (line:15)
答案不正確
您的答案為: 3472328305838421091 正確答案為: 7543416797992088675