天梯赛--亲情号码(C语言实现)

文章描述了一位商业策划者小y在江苏常州车辆管理所的顾问工作中,遇到的问题是如何计算出随机生成的汽车号码中,有多少对满足特定条件的亲情号码,即两个号码后五位(或字母)之和相等。
摘要由CSDN通过智能技术生成

我国经济的不断发展,小汽车已经越来越普及,有的家庭甚至已经有了两辆以上的

汽车。作为一个优秀的商业策划者,小 y 承担了车辆管理所的商业开发顾问,经过研究和调

查,他发现,有些家庭或情侣希望他们的汽车号码与手机号码一样,能有一定的关联。比如

“苏 DMM520”和“苏 DGG520”就一对不错的“亲情号码”,这种号码是可以卖大价钱的!小

y 作了一个定义:他把两个汽车号码后面的 5 个数字(或大写英文字母)加起来,如果和相

等,他就认为这是一对亲情号码。“苏 D74110”和“苏 D11074”就是一对亲情号码。当然,

如果汽车号码是 26 个大写英文字母,这时就按所谓的“三十六进制数”处理。比如“苏 DABC00”

和“苏 D0000X”也是一对亲情号码。

现在的问题是:车管所随机生成若干个汽车号码,请你找出中间都多少对亲情号码。

约定:由于小 y 所在地为江苏常州,所以汽车号码的格式都是“SD*****”。

输入格式:

第一行为 n,n<1000。

以下 n 行,每行一个汽车号码。

输出格式:

一行一个整数,表示其中亲情号码的对数。

注意:一个号码可能和其它多个号码是亲情号码。

如果 A 与 B 是亲情号码,那么 B 与 A 当然也是亲情号码,这只算一对。

输入样例:

6
SDMM520
SDGG520
SD74110
SD11074
SDABC00
SD0000Y

输出样例:

1

#include<stdio.h>
struct stu
{
	char arr[7];
}size[1000];          结构体数组处理车牌号的输入
int art(char arr1[], char arr2[])
{
	int i,j,sum=0;
	for(i=2;i<7;i++)
	{
		for(j=0;j<36;j++)
		if(arr1[i]==arr2[j])
		sum=sum+j;
	}
	return sum;   //计算输入车牌号的和
}
int main()
{
	
	int n,i,j,he=0;
	int sum[1000]={0};
	char arr2[36]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";  //三十六进制差不多意思
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
	scanf("%s",size[i].arr);
	sum[i]=art(size[i].arr,arr2);    //调用art函数,把和存在sum数组中
    }
    for(i=0;i<n;i++)                 //遍历数组,若有值相等,he+1
    {
    	for(j=i+1;j<n;j++)            //j=i+1 处理重复问题
    	{
    		if(sum[i]==sum[j])
    		{
    			he++;
			}
		}
	}
	printf("%d",he);
	return 0;
}

  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值