D13. 学习基础C、C++语言

D13. 基础题3n+1跟进阶3n+1(Uva100)

3n+1是很基本的练习题目,题目大致上是输入一个数n,如果为奇数则3n+1,若为偶数则n/2,所以步骤大概是

输入数字判断奇偶若为奇数*3+1,为偶数/2重複第2、3步骤直到数字为1
#include <stdio.h>#include <stdlib.h>int main(){     int n;  while(scanf("%d",&n)!=EOF){     while(n!=1){           if(n%2==1){         n=3*n+1;            printf("%d ",n);           }           else{       n=n/2;       printf("%d ",n);         } }printf("\n");}  return 0;}

进阶题(uva100)

#include<stdio.h>#include<stdlib.h>main(){ int a,x,y,n,i,j,count,max; while(scanf("%d %d",&i,&j)!=EOF) { count=1;max=1;   if(i>j)    {      printf("%d %d ",i,j);      x=i;      i=j;      j=x;    }    else      printf("%d %d ",i,j);   for(a=i;a<=j;a=a+1)    {     n=a;count=1;     while(n!=1){        if(n%2==1)            {n=n*3+1;            count=count+1; }        else            {n=n/2;            count=count+1; }}      if(count>max) {max=count;}    }   printf("%d\n",max); } return 0;}

这里我是先判断两数大小然后再用迴圈开始一个一个判断,最后在看新得到的count有没有比max大,需不需要取代掉,最后再print结果


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章