CMB11. 整数成绩最大化
描述
输入描述
输入为1个整数输出描述
输出为1个整数示例1
输入:
10
输出:
36
C 解法, 执行用时: 1ms, 内存消耗: 356KB, 提交时间: 2020-07-16
#include<stdio.h> int main() { int n,sum=1; int last=sum; scanf("%d",&n); for(int i=2;i<n;i++){ int p1=n/i; int p2=p1+1; int num2=n%i; int num1=i-num2; //printf("%d %d %d %d\n",p1,p2,num1,num2); sum=1; for(int i=0;i<num1;i++){ sum*=p1; } for(int i=0;i<num2;i++){ sum*=p2; } if(sum<last){ break; } last=sum; } printf("%d",last); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2018-08-31
#include "stdio.h" int get_max_result(n){ switch (n){ case 1: return 1; case 2: return 2; case 3: return 3; case 4: return 4; case 5: return 6; case 6: return 9; default: return 3*get_max_result(n-3); } } int main(){ int n; while(scanf("%d", &n) != EOF) printf("%d\n", get_max_result(n)); }
C 解法, 执行用时: 2ms, 内存消耗: 224KB, 提交时间: 2019-05-30
#include<stdio.h> int fun(int n) { if(n>4) { return 3*fun(n-3); } else { return n; } } int main() { int n; scanf("%d",&n); printf("%d\n",fun(n)); }
C 解法, 执行用时: 2ms, 内存消耗: 228KB, 提交时间: 2019-03-20
#include<stdio.h> int main(void) { //任意整数最大化均在原基础之上 //F(2)=1<2 F(3)=2<3 F(4)=2*2 //2^(N/2)<3^(N/3),故选 3^(N/3) int n; int result; scanf("%d",&n); if(n==2) { result=1; } else if(n==3) { result=2; } else if(n%3==0) { result=pow(3,(n/3)); } else if(n%3==1) { result=pow(3,((n/3)-1))*4; } else if(n%3==2) { result=pow(3,(n/3))*2; } printf("%d\n",result); }
C 解法, 执行用时: 2ms, 内存消耗: 236KB, 提交时间: 2019-09-22
#include<stdio.h> int main() { int n = 0, res = 1; scanf("%d", &n); if (n < 0) { res = 0; } else if (n == 1 || n == 2) { res = 1; } else if (n == 3) { res = 2; } else { while (n > 4) { res *= 3; n -= 3; } res = res * n; } printf("%d\n", res); return 0; }