Điểm:
800 (p)
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
Bạn nhận được tất cả các số từ \(1\) đến \(n\) trừ một số. Nhiệm vụ của bạn là tìm số bị thiếu đó.
Input
- Dòng đầu tiên chứa một số nguyên \(n\).
- Dòng thứ hai chứa \(n-1\) số. Các số khác nhau đôi một và mỗi số có giá trị từ \(1\) đến \(n\).
Output
- In ra số còn thiếu.
Constraints
- \(2 \le n \le 2 \cdot 10^5\)
Example
Sample input
5
2 3 1 5
Sample output
4
Bình luận
Bài này dễ mà
Hint tính tổng từ 1 đến n rồi tính tổng phần tử nhập vào r trừ vô là xg
l=int(input())
a=map(int,input().split())
print(((l+1)*l)//2-sum(a))
code
l=int(input())
a=map(int,input().split())
print(((l+1)*l)//2-sum(a))
Bài này 800 điểm thì hơi quá:v
đơn giản, ta chỉ cần lấy tổng của 1 đến n trừ cho tổng của dãy đã cho:
-đầu tiên, tạo một biến sum, chạy một vòng lặp for cộng sum cho từng phần tử trong dãy (VD: sum = 2 + 3 + 1 + 5 = 11)
-tiếp theo, trả về kết quả tổng từ 1 đến n (công thức là n*(n + 1) / 2) trừ cho sum (VD: 15 - 11 = 4)
sao code này mình test được mà lại runtime error
include<bits/stdc++.h>
using namespace std;
long long n,a[100000011],i,tg=0,MAX=0,d,e;
int main(){
cin>>n;
for(i=1;i<n;i++) cin>>a[i];
for(i=1;i<n;i++) if(a[i]>MAX) MAX=a[i];
for(i=1;i<n;i++)
tg=tg+a[i];
d=MAX*(MAX+1)/2;
e=d-tg;
cout<<e;
}
Dùng mảng đánh dấu!