接下來(lái)看第四種,對(duì)應(yīng)1088題,A+B IV,這一題同樣是求和,但是不是a+b兩個(gè)數(shù)字了,而是求n個(gè)數(shù)的和,輸入為先輸入一個(gè)數(shù)組n,然后后面跟n個(gè)數(shù)字,求這n個(gè)數(shù)字的和。同樣有多組數(shù)據(jù),當(dāng)n=0時(shí)結(jié)束。
樣例輸入:
4 1 2 3 4 5 1 2 3 4 5 0
樣例輸出:
10 15
想必結(jié)合題意和樣例,大家已經(jīng)明白題目考察點(diǎn)了,就是累加求和,只不過(guò)個(gè)數(shù)n需要提前指定,為0表示結(jié)束,故而我們可以先接收n并且判斷n非0再進(jìn)入循環(huán),循環(huán)n次累加求和
參考C語(yǔ)言代碼:
#include<stdio.h> int main() { int n; int sum,temp; while(scanf("%d",&n) && n) { sum=0; while(n--) { scanf("%d",&temp); sum+=temp; } printf("%d\n",sum); } return 0; }
注意本題,為雙重循環(huán),每次累加求和的sum一定要每次都要?dú)w零!這是一個(gè)易錯(cuò)點(diǎn)
參考C++寫(xiě)法:
#include<iostream> using namespace std; int main() { int n,x; while(cin>>n && n) { int sum=0; while(n--) { cin>>x; sum+=x; } cout<<sum<<endl; } return 0; }
參考Java代碼:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int sum=0; int n = scanner.nextInt(); if(n==0) break; while (n--!=0){ int a=scanner.nextInt(); sum=sum+a; } System.out.println(sum); } } }
參考Python代碼:
while True: sum=0 list=input().split() if list[0]=='0': break for i in range(1,len(list)): list[i]=int(list[i]) sum+=list[i] print(sum)
1088 | A+B for Input-Output Practice (IV) |
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程
只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程