在棋盘上尽可能地摆主教,要求互不攻击
高精度,注意0和1。
#include<cstdio> #include<cstring> char s[105]; int l,i,j,a[105]; int main(){ while(scanf("%s",&s)!=EOF){ l=strlen(s); memset(a,0,sizeof(a)); if(l==1&&s[0]<‘3‘)printf("%s\n",s); else{ for (i=0;i<l;i++) a[l-i]=s[i]-48; for (i=1;i<=l;i++){ a[i]=a[i]*2+a[i-1]/10; a[i-1]%=10; } a[1]-=2;i=1; while(a[i]<0){a[i+1]--;a[i]+=10;i++;} for (i=l;i;i--) printf("%d",a[i]); printf("\n"); } memset(s,0,sizeof(s)); } }
时间: 2024-10-19 04:01:11