简单题型3

1.在屏幕上输出以下图案:
在这里插入图片描述
思路:每行的*数量是行数的2倍减一个,将图形分为上下两部分,用两次for循环进行输出,上半部分正常输出,下半部分先数出下半部分的行数,然后for循环初始化条件等于行数,更新条件依次减减,注意换行符。

代码:

#include<stdio.h>
#include<stdlib.h>
//每行*的打印
void Print_s(int i){
	for (int j = 0; j < 2 * i - 1; j++){
		printf("*");
	}
	//每行完成后都有换行符
	printf("\n");
}
int main(){
	//图形的上半部分
	for (int i = 1; i < 8; i++){
		Print_s(i);
		//两行之间的换行符
		printf("\n");
	}
	//图形的下半部分
	for (int j = 6; j>0; j--){
		Print_s(j);
		printf("\n");
	}
	system("pause");
}

2.求出0 ~ 999之同的所有水仙花数并输出。
“水仙花数"是指一个三位数, 其各位数字的立方和确好等于该数本身,如 153=1+5+3, 则153是一个水仙花数"。
在数论中,水仙花数(Narissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、 371及 407就是三位数的水仙花数,其各个数之立方和等于该数:
153= 1^3 +5^3 +3^3。
370=3^3+ 7^3 + 0^3。
371=3^3+ 7^3+ 1^3。
407=4^3 +0^3 + 7^3。

思路:将每个判断的数的个十百位求出来,每位数自乘三次相加起来,将加起来的值与判断的数比较,如果等于则为水仙花数输出。

代码:

#include<stdio.h>
#include<stdlib.h>
//判断是否为水仙花数
void Judge(int i){
	int x = i;
	//数组存放个十百位
	int arr[3] = { 0 };
	for (int a = 0; a < 3; a++){
		arr[a] = i % 10;
		i = i / 10;
	}
	int j = 0;
	//每位数自乘三次,然后相加
	for (int a = 0; a < 3; a++){
		int y = arr[a] * arr[a] * arr[a];
		j += y;
	}
	//判断相加起来的值是否与要判断的数相等
	if (x == j){
		printf("%d ", x);
	}
}
int main(){
	//水仙花数为一个三位数,所以初始值从100 开始
	for (int i = 100; i < 1000; i++){
		Judge(i);
	}
	system("pause");
}

3.求Sn=a+aa+aaa+aaaa+aaaaa前五项的和,其中a是一个数字。
例如:2+22+222+2222+22222

思路:从第二项开始的每一项都等于前一项乘10再加上a,比如说,22=2X10+2;222=22X10+2,利用for循环循环5次,依次将各项相加起来就得出结果。

代码:

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//计算每项的数
void NumAdd(int i){
	int x=0,b = 0;
//第一项的处理:b=0*10+i,例如:i=2时,b=0*10+2;
	for (int a = 0; a < 5; a++){
		b = b * 10 + i;
//将每项的数依次相加
		x += b;
	}
	printf("%d",x);
}
int main(){
	printf("请输入:");
	int i = 0;
	scanf("%d", &i);
	NumAdd(i);
	system("pause");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值