请看题:
给n个整数,输出这n个数的和
输入:
第一行一个整数n;第二行n个整数,整数之间有一个空格。
输出:
n个数的和(不要回车)
输入样例: 4
1 2 3 4
输出样例: 10
请用尽量少的字符编写程序。
正常代码:
#include<iostream>
using namespace std;
int main(){
int n,a,sum=0;
cin>>n;
while(n--){
cin>>a;
sum+=a;
}
cout<<sum;
return 0;
}
精简后的代码:
#include<iostream>
main(){
int n,s;
while(std::cin>>n)
s+=n-1;
std::cout<<s+1;
}
算法核心:
在while循环中,s等于n和另外n个数的和减(n+1),此时s的值为:
s=n+(a1+a2+a3+......+an)-(n+1);
最后减去1,就是和。