【PAT】1001/1002

/*
*时间:2018年3月31日22:05:53
*题号:1001
*语言:gcc 4.7.2
*分数:15
*/
#include <stdio.h>
int main()
{
  int i = 0;
  int n;
  scanf("%d", &n);
  while (n != 1)
  {
    if(n % 2 == 0)
      n = n/2;
    else
      n = (3*n+1)/2;
    i++;
  }
  printf("%d\n",i);
  return 0;
}

/*
*时间:2018年3月31日22:07:51-2018年3月31日21:12:21
*题号:1002
*语言:gcc 4.7.2
*分数:20
*/
#include <stdio.h>
#include <string.h>
int main()
{
  char n[101];     
  gets(n);               //gets();函数得到char类型的数组
  int sum = 0;
  int i = 0;
  int j = 0;
  int res[5];
  char num[][5] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; 
  //相应的下标对应相应的拼音,num[][5]用来存放小于5个字符的字符串
  while (n[i] != '\0')   //得到所有数据的和
  {
	  sum += (n[i] - '0');//将char类型的数据准换成int类型的数据
	  i++;
  }
  //printf("%d \n",sum);
  while (sum != 0)		  //将sum倒序方便后面输出
  {
	  res[j] = sum % 10;
	  sum  = sum / 10;
	  j++;
  }
  //printf("%d %d %d \n",res[0],res[1],res[2]);
  int k;
  for (k = j-1; k>=0; k--) //输出拼音,这里注意k=j-1
  {
	  printf("%s",num[res[k]] );
	  if (k != 0 ) 			//最后一个没有空格
	  {
		  printf(" ");
	  }
  }
  
  return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值