| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
这一题有什么特殊数据吗? 为什么我总是WA!!!!一楼的测试数据我都过了
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define NUM 10000
int main()
{
int i, j, m, n, s, t, w;
int rank[NUM];
int digit[NUM];
int skew[NUM];
for (i=0; rank[i-1]<=100663270; i++)
{
rank[i] = (int)pow(2, (double)(i+1))-1;
}
s = i-2;
while (scanf ("%d", &n)!=EOF && n>0)
{
for (i=0; i<n; i++)
{
scanf ("%d", &m);
if (m==0)
{
printf ("%d []\n", m);
continue;
}
w = m;
for (j=0; j<s; j++)
{
digit[j] = 0;
}
for (j=s; j>=0; j--)
{
if ((m/rank[j])>0)
{
digit[j] = m/rank[j];
m = m-digit[j]*rank[j];
}
}
t = 0;
for (j=0; j<s; j++)
{
if (digit[j]==2)
{
skew[t] = j;
t++;
skew[t] = j;
t++;
}
else if (digit[j]==1)
{
skew[t] = j;
t++;
}
}
printf ("%d [%d", w, skew[0]);
for (j=1; j<t; j++)
{
printf (",%d", skew[j]);
}
printf ("]\n");
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator