1. 소수점 절사방법
ex)5.41에서 1을 절사(버리기)하려면
10을곱한후 floor 하면된다
5.41 -> 54.1 -> 54
2. 소수점 비교방법
직접비교 : | a- b| < 0.00001 (앱실론) 이면 같은거임
10^n 을 곱해서 정수로 바꾼후 비교하는걸 추천함!
값이 중요한게 아니라 대소만 보면되므로 정수로 바꿔서 == 비교가 정확한듯?
2.5 .로그값구하는법
log2 함수를 쓰면된다.
log 2 (10) 만 = 16 이다.
// function to evaluate natural logarithm base-e
double value2(double d)
{
return log2(d);
}
// driver program to test the above function
int main()
{
double d = 100000;
cout << "The logarithm value(base-e) of " << d
<< " is " << value2(d) << endl;
return 0;
}
3. 전체코드
#include <bits/stdc++.h>
using namespace std;
int n;
vector<pair<int,double>> vec; //idx , v*w
bool cmp(pair<int,double> p1, pair<int,double> p2){
if(p1.second==p2.second){ //가격이 같다면
return p1.first<p2.first; //회사번호 작은순
}
return p1.second>p2.second; //가격큰순
}
int main() {
char input[100];
cin >> n;
for(int i=0;i<n;++i){
double v,w,tmp;
cin>>v>>w;
tmp=v*w*10;
tmp=floor(tmp);
vec.push_back({i+1,tmp});
}
sort(vec.begin(),vec.end(),cmp);
for(auto p : vec){
cout<<p.first<<" ";
//cout<<p.first<<" "<<p.second<<"\n";
}
return 0;
}
'Algorithm > 수학' 카테고리의 다른 글
[알고리즘] 백준 4375 1 // 모듈러연산, str금지, 자릿수저장할 변수 (0) | 2025.01.01 |
---|---|
[알고리즘] 백준 1629 곱셈 // 지수승은 재귀로 (0) | 2024.12.31 |
백준 1010 다리놓기 c++ // 수학, 조합론 (0) | 2024.04.28 |