大家好,欢迎来到IT知识分享网。
【题目描述】
一个给定的正整数序列,在每个数之前都插入+
号或−号后计算它们的和。比如序列:1、2、4共有8
种可能的序列:
(+1) + (+2) + (+4) = 7 (+1) + (+2) + (-4) = -1 (+1) + (-2) + (+4) = 3 (+1) + (-2) + (-4) = -5 (-1) + (+2) + (+4) = 5 (-1) + (+2) + (-4) = -3 (-1) + (-2) + (+4) = 1 (-1) + (-2) + (-4) = -7
所有结果中至少有一个可被整数k
整除,我们则称此正整数序列可被k整除。例如上述序列可以被3、5、7整除,而不能被2、4、6、8……整除。注意:0、−3、−6、−9……
都可以认为是3的倍数。
【输入】
输入的第一行包含两个数:N(2<N<10000)
和k(2<k<100),其中N代表一共有N个数,k代表被除数。第二行给出序列中的N个整数,这些整数的取值范围都0到10000
之间(可能重复)。
【输出】
如果此正整数序列可被k
整除,则输出YES,否则输出NO
。(注意:都是大写字母)
【输入样例】
3 2 1 2 4
【输出样例】
NO
#include <iostream>
#define A 10000+5
using namespace std;
long long a[A];
int main()
{
int i,j;
int n,k;
cin>>n>>k;
int sum=0;
for(i=1;i<=n;i++)
{
cin>>a[i];
sum+=a[i];
}
if(sum%k==0)
{
cout<<"YES"<<endl;
return 0;
}
int temp;
for(i=1;i<=n;i++)
{
temp=sum;
if((temp-2*a[i])%k==0)
{
cout<<"YES"<<endl;
return 0;
}
}
cout<<"NO"<<endl;
return 0;
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27464.html