Java———超市贴花
代码:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int []a=new int[n];
for(int i=0;i<n;i++)
{
a[i]=sc.nextInt();
}
int t;
for(int i=0;i<a.length-1;i++)
for(int j=0;j<a.length-1-i;j++)//用冒泡法将输入的数由小到大先排序。
{
if(a[j+1]<a[j])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
int flag=0,count=0,ring=0;
for(int i=0;i<a.length-1;i++)//开始找连续的三个数。
{
if(flag==1&&count==1)//已经有两个数连续判断第三个数是否连续。
{
if(a[i]+1 == a[i+1])
{
flag++;
count=0;
a[i]=0;//若为连续代表该数代表的花已经用出去变为0。
}
else//如果第三个数不连续则表示计数全部重来。
{
flag--;
count--;
}
}
if(flag==0)//从第一个数与第二个数之间开始判断是否连续。
{
if(a[i]+1 == a[i+1])
{
flag++;
count++;
a[i]=0;//一、二个数连续则将第一个数置为零,表示已判断过。
}
}
while(flag==2)//有三个连续数出现后。
{
ring++;//表示兑换小礼物的数量。
flag=0;//置零,重新计算连续三个数。
a[i+1]=-1;//因为三个花已花出去,则第三个数也要丢掉。
}
}
System.out.println(ring);//输出最终可以得到的小礼物数量。
}
}
将帅的坚强意志,就像城市主要街道汇集点上的方尖碑一样,在军事艺术中占有十分突出的地位。——克劳塞维茨