首页 > Vijos题解 > Vijos P1141 最小非负值 C语言版

Vijos P1141 最小非负值 C语言版

2008年4月14日 19:52 Slyar 发表评论 阅读评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

描述 Description

输入一个自然数n(n<10^2000),表示1到n共n个自然数排成一列,你要在每一个数前添上+或-,要使得添加符号后这个代数式的值最小且非负.

输入格式 Input Format

一个数,n.

输出格式 Output Format

一个数,即最小非负值。

Tip:n=4时,1~4的数可以这样添加正负号:-1+2+3-4或+1-2-3+4,即-(n-3)+(n-2)+(n-1)-n或+(n-3)-(n-2)-(n-1)+n这样每四个一循环,值为0。而100的倍数必能整除4,搞定。

#include <stdio.h>
#include <string.h>

int main(){
char a[20000]={0};
int n;
scanf("%s",&a);
n=a[strlen(a)-1]+a[strlen(a)-2]*10;
n%=4;
if(n==1||n==2) printf("1\n");
else printf("0\n");
system("pause");
return 0;
}

分类: Vijos题解 标签: ,
  1. 本文目前尚无任何评论.

bnuep:0801010047