728x90
예제 조건 :
강화 수치를 저장하는 int 변수 하나가 있다.
강화 수치가 0~3 사이일 경우 100% 확률로 강화 성공
4-6 사이일 경우 50% 확률로 강화 성공
7-9 사이일 경우 20%
10 - 12, 2%
13이상일 경우 0.7%
나의 풀이
int upgrade = 13;
printf("----------- 이전 강화 수치 : %d\n", upgrade);
// 0-3 100% 강화성공
if ( upgrade <= 3 )
{
printf("강화성공! 강화된 수치 : %d", ++upgrade);
}
else
{
srand(time(0));
int random = rand();
random = rand() % 100;
if (upgrade >= 4 && upgrade <= 6)
{
if (random >= 50)
printf("강화성공! 강화된 수치 : %d, 랜덤수치 : %d", ++upgrade, random);
else
printf("강화실패! 강화 수치 : %d, 랜덤수치 : %d", upgrade, random);
}
else if (upgrade >= 7 && upgrade <= 9)
{
if (random <= 20)
printf("강화성공! 강화된 수치 : %d, 랜덤수치 : %d", ++upgrade, random);
else
printf("강화실패! 강화 수치 : %d, 랜덤수치 : %d", upgrade, random);
}
else if (upgrade >= 10 && upgrade <= 12)
{
if (random <= 2)
printf("강화성공! 강화된 수치 : %d, 랜덤수치 : %d", ++upgrade, random);
else
printf("강화실패! 강화 수치 : %d, 랜덤수치 : %d", upgrade, random);
}
else
{
// 13이상일 경우 0.7%
random = rand() % 1000;
if (random <= 7)
printf("강화성공! 강화된 수치 : %d, 랜덤수치 : %d", ++upgrade, random);
else
printf("강화실패! 강화 수치 : %d, 랜덤수치 : %d", upgrade, random);
}
}
강사님 풀이
unsigned int lv = 9;
float percent = rand() % 10001 * 0.01f;
std::cout << percent << " [확률]" << std::endl;
if (lv <= 3)
{
std::cout << ++lv << " [성공]" << std::endl;
}
else if (lv <= 6)
{
if (percent <= 50.1)
{
std::cout << ++lv << "[성공]" << std::endl;
}
else
{
std::cout << "[실패]" << std::endl;
}
}
else if (lv <= 9)
{
if (percent <= 20.1)
{
std::cout << ++lv << "[성공]" << std::endl;
}
else
{
std::cout << "[실패]" << std::endl;
}
}
else if (lv <= 12)
{
if (percent <= 2.1)
{
std::cout << ++lv << "[성공]" << std::endl;
}
else
{
std::cout << "[실패]" << std::endl;
}
}
else
{
if (percent <= 0.71)
{
std::cout << ++lv << "[성공]" << std::endl;
}
else
{
std::cout << "[실패]" << std::endl;
}
}
728x90
'개발개발 > c++ 예제' 카테고리의 다른 글
빙고 (0) | 2024.12.14 |
---|---|
반복문, 난수, 입력(cin)을 사용하는 예제 (1) | 2024.12.06 |
댓글