【C基础】05 编程练习

本文通过一系列C语言编程练习题,包括求复合条件的整数集、水仙花数、九九乘法表、素数统计与求和、猜数游戏、序列前N项和、约分最简分式、整数拼音输出和求连续数字和,旨在提升C语言编程能力。
摘要由CSDN通过智能技术生成

一、求复合特定条件的整数集

Task1:
  给定不超过6的正整数A,考虑从A开始的连续4个数字,请输出所有由它们组成的无重复的3位数。

输入格式: 在输入的一行中给出A
输出格式:输出满足条件的3位数,要求从小到大,每行6个整数,整数间以空格分隔,但行末不能有多余的空格。

int a,i,j,k,cnt;
	scanf("%d",&a);

	cnt=0;   //用cnt来判断是否换行 
	for(i=a;i<=a+3;i++){
   
		for(j=a;j<=a+3;j++){
   
			for(k=a;k<=a+3;k++){
   
				if(i!=j&&i!=k&&j!=k) {
   
					printf("%d%d%d",i,j,k);
					cnt++;
					if(m%6) printf(" ");
					else printf("\n");
				}
			}
		}
	}

输出结果实例:
请添加图片描述

二、求水仙花数(难点)

Task2:
  水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 13 + 53 + 33。要求编写程序计算所有的N位水仙花数。(位数=幂次数=N)
输入格式:输入一个正整数(3<=N<=7)。
输出格式:按递增顺序输出所有的N位水仙花数,每个数字占一行。

int n,i,first;
	scanf("%d",&n);
	
	//找到n位数的遍历起始值first,例如3位数遍历100~999,100为起始值
	first = 1;
	for(i=1;i<n;i++){
   
		first *= 10;
	}
	
	//遍历
	for(i=first;i<10*first;i++){
   
		int t = i;   //a单独保存 
		int sum = 0; //每遍历一轮,sum清零 
		
		//拆分数字,得到幂次和 
		do{
   
			int d = t%10;  //得到末位数字d
			t /= 10;       //原数字消除末位
			
			//求各个末位数字的n次幂
			int j,p=1;
			for(j=0;j<n;j++){
   
				p *= d;
			}
			sum += p;
		}while
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值