0
点赞
收藏
分享

微信扫一扫

蓝桥杯包子凑数(C)

独西楼Q 2022-01-20 阅读 63

#include<stdio.h>
#include<iostream>
using namespace std;
//计算最大公约数 
int gcd(int a,int b){
	if(b==0) return a;
	return gcd(b,a%b);
}
int main(){
	int n,g,ans=0;
	scanf("%d",&n);
	int a[100+1];
	bool f[20000];
	f[0]=true;
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		if(i==1) g=a[i];
		else g=gcd(a[i],g); 
		} 
	if(g!=1){
		printf("INF");
		return 0;
	} 
	else{
		for(int i=1;i<=n;i++)
		  for(int j=0;j<10000;j++){//wc,我居然把j++写错成i++,然后找了一个上午的错(ㄒoㄒ)~~,细节啊 
		  	 if(f[j]){
		  	   f[j+a[i]]=true;
		  	 } 
		  } 
		for(int i=0;i<10000;i++){
			if(!f[i]) ans++;
		}
	}
	printf("%d",ans);
	return 0;
}
举报

相关推荐

0 条评论