Professional Documents
Culture Documents
( ) - 3
( ) - 3
( ) - 3
입력
10
10 -4 3 1 5 6 -35 12 21 –1
출력
33
#include <stdio.h>
int a[100000], dp[100000]; // dp[i] 배열은 연속된 i번째 배열까지의 최댓값
int main()
{
int n, i, ret;
scanf("%d", &n);
scanf("%d", &a[0]);
for (i = 1; i < n; i++) scanf("%d", &a[i]);
dp[0] = .......
.......
}
printf("%d", ret);
return 0;
}
#include <stdio.h>
int a[100000], dp[100000]; // dp[i] 배열은 연속된 i번째 배열까지의 최댓값
int main()
{
int n, i, ret;
scanf("%d", &n);
scanf("%d", &a[0]);
for (i = 1; i < n; i++) scanf("%d", &a[i]);
return 0;
}
문제> 예시처럼 입력된 값 이하의 자연수 중에서 가장 많은 약수를 가지는 자연수와 약수의 개
수를 출력하는 코드를 완성하시오(단, 답은 답안에 작성하시오.).
입력
25
출력
24 8
#include <stdio.h>
int main()
{
int n, cnt, ansCount, ansNum, i, j;
ansCount = 0;
scanf("%d", &n);
i = 1;
while (i <= n)
{
j = 1;
cnt = 0;
while ( ...... )
{
......
......
}
if (cnt > ansCount)
{
......
......
}
i++;
}
printf("%d %d", ansNum, ansCount);
return 0;
}
#include <stdio.h>
int main()
{
int n, cnt, ansCount, ansNum, i, j;
ansCount = 0;
scanf("%d", &n);
i = 1;
while (i <= n)
{
j = 1;
cnt = 0;
while ( j<=i ) //1
{
if(i%j==0) cnt++; //2
j++; //3
}
if (cnt > ansCount)
{
ansCount = cnt; //4
ansNum = i; //5
}
i++;
}
printf("%d %d", ansNum, ansCount);
return 0;
}