1871888_re.c
来自「北大大牛代码 1240道题的原代码 超级权威」· C语言 代码 · 共 26 行
C
26 行
# include <stdio.h>
# include <math.h>
int main()
{
long roman[500001];
long m, i, tmp;
long mark[500001];
roman[0] = 0;
mark[0] = (long)pow(2,15);
for(m = 1; m < 501; m++)
mark[m] = 0;
for(m = 1; m <= 500000; m++)
{
tmp = roman[m-1] - m;
if(tmp<=0||mark[tmp/32]&(long)pow(2,31-tmp%32))
tmp = roman[m-1] + m;
mark[tmp/32] |= (long)pow(2,31-tmp%32 );
roman[m] = tmp;
}
while(scanf("%ld",&m)==1&&m!=-1)
printf("%ld\n",roman[m]);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?