PTA:幸运彩票

这篇文章描述了一个编程问题,涉及检查彩票是否幸运,条件是前三位数字之和等于后三位数字之和。提供了两种不同的C语言实现方法,一种使用循环逐位处理,另一种利用数组简化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。

输入格式:

输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。

输出格式:

对每张彩票,如果它是幸运的,就在一行中输出You are lucky!否则输出 Wish you good luck.。

输入样例:

2
233008
123456

输出样例:

You are lucky!
Wish you good luck.

本人思路如下:

先确定彩票个数,利用循环将每张彩票数值存进i中,将彩票数字一分为二,分别计算前三个数之和,与后三个数之和,进行判断,相等则输出You are lucky!,否则则输出Wish you good luck.。

(2)利用数组的话则只需将彩票上的数字分别存储,比较数组前三位与后三位存储的数据。

程序代码如下:

#include<stdio.h>
int main() {
	int n;
	int a, b;
	scanf("%d", &n);//确定彩票张数//
	int j = 1, i = 0;
	while (n--) {//每输入一次,减少一次彩票张数//
		scanf("%6d", &i);
			int sum1 = 0, S1 = 0, sum2 = 0, S2 = 0;
			sum1 = i % 1000;//彩票后三位放在sum1中//
			sum2 = i / 1000;//彩漂前三位放在sum2中//
			while (sum1) {//sum1!=0话,继续循环//
				a = sum1 % 10;//利用循环求每一位//
				sum1 /= 10;
				S1 = S1 + a;//将前三位相加//
			}
			while (sum2) {
				b = sum2 % 10;
				sum2 /= 10;
				S2 = S2 + b;//后三位相加//
			}

			if (S1 == S2) {//进行判断//
				printf("You are luck!");
			}
			else {
				printf("Wish you good luck.");
			}
			if (n!=0) {//判断是否为最后一张彩排,若是则无需换行//
				printf("\n");
			}
		}
	
	return 0;
}

程序代码如下(利用数组):

//int main() {
//	int n, arr[10], k;
//	scanf("%d", &n);
//	while (n--) {
//		scanf("%d", &k);
//		int i = 0;
//		for (i = 0; i < 6; i++) {
//			arr[i] = k % 10;//将彩票每一位分别存在数组中//
//			k /= 10;
//		}
//		if (arr[0] + arr[1] + arr[2] == arr[3] + arr[4] + arr[5]) {//比较数组前三位与后三位//
//			printf("You are lucky!");
//		}
//		else {
//			printf("Wish you good luck.");
//		}
//		if (n != 0) {
//			printf("\n");
//		}
//	}
//	return 0;
//}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值