社区讨论
c语言 大佬们来帮我看一眼!
P5727【深基5.例3】冰雹猜想参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lok08r7o
- 此快照首次捕获于
- 2023/11/04 20:12 2 年前
- 此快照最后确认于
- 2023/11/04 21:58 2 年前
一开始我是这么写的,而后我发现第一个数存错了,总是会变成 2
int main(){
int a[1000];
int n,i=1;
scanf("%d",&n);
while(1){
a[0]=n;
if(n%2==1){
n=n*3+1;
a[i]=n;
}else{
n=n/2;
a[i]=n;
}
if(a[i]==1) break;
++i;
}
for(int j = i;j >= 0;--j){
printf("%d ",a[j]);
}
return 0;
}
然后我就想了个歪招
int main(){
int a[1000];
int n,i=0;
scanf("%d",&n);
int k = n;
while(1){
if(n%2==1){
n=n*3+1;
a[i]=n;
}else{
n=n/2;
a[i]=n;
}
if(a[i]==1) break;
++i;
}
for(int j = i;j >= 0;--j){
printf("%d ",a[j]);
}
printf("%d",k);
return 0;
}
但是还是只有80分,第三个错了
回复
共 1 条回复,欢迎继续交流。
正在加载回复...