C语言简单编程案例(三)

1.//斐波拉契数列。兔子繁殖问题:1,1,2,3,5,8,13......
/*
递推方法:由初始的已知条件开始,先计算出第(N-1)步的结果,
再利用已知的前(N-1)项结果,按递推公式(或遵照递推规则),推出第 N 步结果。
递推法是程序设计中最常用的方法之一,使用递推法必须有明确的递推初始值和递推规则(递推公式)。
*/

#include<stdio.h>
int main()
{
	int n,m;
	int m1, m2;
	int i;
	scanf("%d", &n);
	if (n == 1 || n == 2)
	{
		printf("1\n");
	}
	else
	{
		m2 = m = 1;
		//递推的三项为:m1,m2,m
		m1 = m2; m2 = m;
		for (i = 3; i <= n; i++)
		{
			m = m1 + m2;
			m1 = m2;
			m2 = m;
		}
		printf("%d\n", m);
	}

}

2.//用逗号运算输出下列字符串。a z b y c x d w e v f u g t h s i r j q k p l o m n

#include<stdio.h>
int main()
{
	char c1, c2;
	for (c1 = 'a', c2 = 'z'; c1 < c2; c1++, c2--)
	{
		printf("%c %c ", c1, c2);
	}
	printf("\n");
	return 0;
}

3.//输入一个 >=0 的整数,要求以相反的顺序输出该数。例如:输入12345,则输出为54321

#include<stdio.h>
int main()
{
	int n;
	scanf("%d", &n);
	while (n > 0)
	{
		printf("%d", n % 10);
		n /= 10;
	}
	return 0;
}

4.//从键盘输入任意的字符,按下列规则进行分类计数。
/*
第一类  ’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’
第二类  ’ + ’, ’ - ’, ’* ’, ’ / ’, ’% ’, ’ = ’
第三类  其它字符
当输入字符 ’\’ 时先计数然后停止接收输入。
*/

#include<stdio.h>
int main()
{
	int numOfNumber=0,numOfCal=0,numOfElse=0;
	char c;
	while ((c = getchar()) != '\\')
	{
	    //if方法
		if (c == '+' || c == '-' || c == '*' || c == '/' || c == '%' || c == '=')
		{
			numOfCal++;
		}
		else if (c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9')
		{
			numOfNumber++;
		}
		else
		{
			numOfElse++;
		}
		//switch方法
		/*
		switch (c)
		{
		case '0':	case '1':	case '2':   case '3':   case '4':   case '5':    case '6':    case '7':    case '8':    case '9':
			numOfNumber++; break;
		case '+':case'-':case'*':case'/':case'%':case'=':
			numOfCal++; break;
		default:numOfElse++;
		}*/
	}
	printf("numOfNumber:%d,numOfCal:%d,numOfElse:%d\n", numOfNumber, numOfCal, numOfElse);
	return 0;
}

5.//求 555555 的约数中最大的三位数是多少?

#include<stdio.h>
int main()
{
	int n;//假设n是最大的那个三位数
	int i = 999;
	for (i; i >99; i--)
	{
		if (555555 % i == 0)
		{
			n = i;
			break;
		}
	}
	printf("%d\n", n);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值