最近是wa疯了。。。求指点
两个错误数据:
n=0
n=12345678912345678
第二个数据错误的具体原因没仔细找
渣渣的一点程序
我这渣渣是写不来链表这种高级的东西的。自己瞎搞了一通。
我这破玩意n为0要特判一下。
using namespace std;
int T;
int su[10010];
vector Su;
vector ans;
void solve()
{
LL n,pos=0;
cin>>n;
ans.clear();
if(n==0)
{
cout<<”0;”<=0;i–) cout<<ans[i]<<”;”;
cout<<endl;
return;
}
void init()
{
for(LL i=2;i<=10000;i++) su[i]=1;
for(LL i=2;i<=10000;i++)
if(su[i])
{
for(LL j=i*2;j<=10000;j+=i) su[j]=0;
}
for(LL i=2;i<=10000;i++) if(su[i]) Su.push_back(i);
return;
}
int main()
{
scanf(“%d”,&T);
init();
for(int step=0;step<T;step++)
{
printf(“case #%d:\n”,step);
solve();
}
return 0;
}
43是质数!43是质数!43是质数!重要的事情说三遍。
附C代码:(特判?不存在的)
#include <stdio.h>
int main()
{
long long weight[16]={1,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};
int T, I;
for(I=1; I<16; I++) weight[I]*=weight[I-1];//计算权重
scanf("%d",&T);
for(I=0; I<T; I++)
{
long long n, i, ans[16]={0};
scanf("%lld",&n);
for(i=15; i; i--)
{
if(n>=weight[i]) ans[i]=n/weight[i];
n%=weight[i];
}
ans[0]=n;
printf("case #%d:\n",I);
for(i=15; i; i--) if(ans[i]) break;
for(; i+1; i--) printf("%lld;",ans[i]);
putchar('\n');
}
return 0;
}
链表是学不会的,这辈子都学不会的。STL也会不用,只有用数组这种东西,才能勉强刷得了OJ