#include<stdio.h>
#define int long long
signed main(){
int n,ans,i,j,a[5005],b[5005];
int sum=0,max=0;
scanf("%lld",&n);
for(i=0;i<n;i++){
scanf("%lld",&a[i]);
sum=0;
while(1){
if(a[i]%2==1)sum++;
if(a[i]%2==0)break;
a[i]=a[i]/2;
}
b[i]=a[i]*sum;
}
for(i=0;i<n;i++){
for(j=0;j<i;j++){
b[j]+=b[i]*0.2;
}
}
if(j==n-1&&i==n-1)b[j]=b[i];
for(j=0;j<n;j++){
if(b[j]>max){
max=b[j];
ans=j+1;
}
}
printf("%lld",ans);
return 0;
}其中的for(i=0;i<n;i++){
for(j=0;j<i;j++){
b[j]+=b[i]*0.2;
}
}
当b[j]跳出最里面那个循环后,再次进入b[j]会是最开始那个值,还是上次循环结束时的值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- qzjhjxj 2022-07-26 14:35关注
注释见代码,供参考:
#include<stdio.h> #define int long long signed main() { int n, ans, i, j, a[5005], b[5005]; int sum = 0, max = 0; scanf("%lld", &n); for (i = 0; i < n; i++) { scanf("%lld", &a[i]); sum = 0; while (1) { if (a[i] % 2 == 1)sum++; if (a[i] % 2 == 0)break; a[i] = a[i] / 2; } b[i] = a[i] * sum; } for (i = 0; i < n; i++) { // i 是外循环变量因子,i 被初始化一次即:i = 0; 这句只在进入循环时执行一次。 for (j = 0; j < i; j++) { // j 是内循环变量因子,j = 0 在外循环因子每 i++ 一次, j = 0;这句就被执行一次。 //printf("i = %lld, j = %lld\n", i, j); b[j] += b[i] * 0.2; // 假如输入n = 5 //i = 0, 内循环里 j < i 条件不满足,内循环未执行 //i = 1, j = 0 //i = 2, j = 0 //i = 2, j = 1 //i = 3, j = 0 //i = 3, j = 1 //i = 3, j = 2 //i = 4, j = 0 //i = 4, j = 1 //i = 4, j = 2 //i = 4, j = 3 } } if (j == n - 1 && i == n - 1) b[j] = b[i]; for (j = 0; j < n; j++) { if (b[j] > max) { max = b[j]; ans = j + 1; } } printf("%lld", ans); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 12864只亮屏 不显示汉字
- ¥20 三极管1000倍放大电路
- ¥15 vscode报错如何解决
- ¥15 前端vue CryptoJS Aes CBC加密后端java解密
- ¥15 python随机森林对两个excel表格读取,shap报错
- ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
- ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
- ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
- ¥15 VFP如何使用阿里TTS实现文字转语音?
- ¥100 需要跳转番茄畅听app的adb命令