程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> CSDN編程挑戰——《-3+1》

CSDN編程挑戰——《-3+1》

編輯:C++入門知識


-3+1

題目詳情:

有一個數列,所有的數都是非負整數,你可以進行如下方式進行一次操作(注意一次完整的操作必須先後完成如下兩個步驟):

(1) 任選一個不小於3的數,把它減少3。

(2) 任選一個數把它增加1。

請問,最多能夠操作多少次?

輸入格式:

多組數據,每組數據第一行是一個正整數n,表示數列中數的個數。(1<=n<=20000)

第二行包含n個空格分隔的非負整數,每個整數不超過1000000。

輸出格式:

對每組數據輸出一行,表示最多可以進行的操作次數。



答題說明:

輸入樣例

1

10

2

10 11

輸出樣例:

4

10


#include "stdio.h"
#include "string.h"
int main()
{
	long long res,add;	//res結果,add表示要加1的次數 
	int n,a[3];
	while(scanf("%d",&n)!=EOF)
	{
		memset(a,0,sizeof(a)); 
		add=0; res=0;
		
		for(int i=0,tmp;i0)
		{
			// 任選一個數把它增加1,有優先級的 
			if(a[2]>0){
				a[2]--; a[0]++; res++; add++;
			}else if(a[1]>0){
				a[1]--; a[2]++; 
			}else if(a[0]>0){
				a[0]--; a[1]++; 
			}
		}
		printf("%I64d\n",res);
	}
	
	return 0;
}
/* 注意:結果值為int類型,數據大時可能會溢出因此須定義為long long類型 */ 



CSDN挑戰編程交流群:372863405

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved