最新消息:点击查看大S的省钱秘笈

Vijos P1141 最小非负值 C语言版

Vijos题解 Slyar 44浏览 0评论

文章作者:姜南(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语言版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址