1 条题解
-
0
C :
#include<stdio.h> int main() { int a[100],b[100]; int i,x,k,m = 0; scanf("%d",&k); for(x = 0;x<k;x++) scanf("%d",&a[x]); for(x = 0;x<k;x++) { int count = 0; if(x>0) printf("\n"); for(i = 1;;i++) { if(a[x] == 1) { break; } else if(a[x]%2 == 0) a[x] = a[x]/2; else if(a[x]%2 == 1) { b[m] = i; if(b[m]>b[0]) printf(" %d",a[x]); else printf("%d",a[x]); m++; a[x] = a[x]*3+1; count = 1; } } if (count==0) printf("No odd number"); } return 0; }
C++ :
#include<iostream> using namespace std; int main() { int n,temp,i,b[100][100],k[100],t[100],a[100],j; cin>>n; for(i=0;i<n;i++) cin>>a[i]; for(i=0;i<n;i++) { t[i]=0; k[i]=0; temp=a[i]; while(temp!=1) { if(temp%2==1&&temp!=1) { b[i][t[i]]=temp; t[i]++; temp=temp*3+1; k[i]++; } else temp/=2; } if(a[i]%2==1) k[i]--; } for(i=0;i<n;i++) { if(t[i]==0) cout<<"No odd number"; else { for(j=0;j<t[i];j++) { if(j!=t[i]-1) cout<<b[i][j]<<" "; else cout<<b[i][j]; } } if(i<n-1) cout<<"\n"; } return 0; }
Java :
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); while(n-->0){ int a = in.nextInt(); int sum=0; while(true){ if(a%2!=0&&a!=1){ System.out.print(a+" "); a=a*3+1; sum=1; } else if(a%2!=0&&a/2==1){ System.out.print(a); break; } if(a%2==0){ a=a/2; if(a==1&&sum==0){ System.out.print("No odd number"); break; } else if(a==1){ break; } } } System.out.println(); } } }
- 1
信息
- ID
- 1390
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者