n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
#include <iostream>
using namespace std;
int main()
{
int n, ans=0;
cin>>n;
for(int i=1;i<=n;i++){
ans+=i;
}
cout<<ans;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n, cnt =1, total=1;
cin>>n;
while(cnt<n){
cnt++;
total +=cnt;
}
cout<<total;
return 0;
}
문득 코드를 쓰다가 for문의 기초가 흔들렸다.
for(int i =1;i<=n;i++)에서
- 맨처음 i 가 1인가 2인가,,,
- i<=n까지 이면 마지막 i가 n인가 n+1인가,,,
그래서 찾아봤다!
https://learn.microsoft.com/ko-kr/cpp/cpp/for-statement-cpp?view=msvc-170
이 예시를 보니 개념이 확실해졌다
- i의 시작은 제일 첫번째 문.
- 세번째 문의 동작은 두번째 문이 참일 때 까지!
#include <iostream>
using namespace std;
int main()
{
int n, ans=0;
cin>>n;
for(int i=0;i<n;i++){
ans+=i;
}
cout<<ans;
return 0;
}
3을 입력했을 때 6이 나와야 하는데 계속 3이 나와서 for문에 문제가 있다고 생각하고 while문을 작성한 것이었다 사실..ㅎ
i=0에서 시작한 건 사실 큰 문제가 안될 수 있으나
- 두번째 문을 i<n을 작성하여 (n=3일때) i=2까지만 for 문 작동
- i=0,1,2였고 따라서 ans(0) +0+1+2 =3 이 나왔던 것,,,
항상 개념부터 꼼꼼하게!