文章作者:姜南(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;
}
转载请注明:Slyar Home » Vijos P1141 最小非负值 C语言版