PAT乙级真题(1)A+B和C (15) 部分A+B (15)

题目描述

给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。

输入描述:

输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。

输出描述:

对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。

输入例子:

4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647

输出例子:

Case #1: false
Case #2: true
Case #3: true
Case #4: false

代码:



#include <iostream>

using namespace std;
int main()
{
	int n =0 ;
	long long a[10],b[10],c[10];
	long long A, B, C;
	int index = 0;
	cin >> n;
	while (n--)
	{
		cin >> A >> B >> C;
		a[index] = A;
		b[index] = B;
		c[index] = C;
		index++;
	}
	for (int i = 0; i < index; i++)
	{
		if (a[i] + b[i] >c[i])
		{
			if(a[i]>0)
				cout << "Case #" << i + 1 << ": true" << endl;
			else
				cout << "Case #" << i + 1 << ": false" << endl;
		}
		else if((a[i] + b[i])== c[i])
			cout << "Case #" << i + 1 << ": false" << endl;
		else
			cout << "Case #" << i + 1 << ": false" << endl;
	}
	return 0;
}

注意 true 之前有个空格

题目描述

正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。 现给定A、DA、B、DB,请编写程序计算PA + PB。

输入描述:

输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。

输出描述:

在一行中输出PA + PB的值。

输入例子:

3862767 6 13530293 3

输出例子:

399

思路:

输入A B 时,用字符串接收,然后遍历每个字符,给对应的数字数组 的相应位置+1.然后两部分的数加起来即可.

代码:

#include <iostream>
#include<string>
#include <cmath>
//c++ 导入包  去掉 .h  加c
using namespace std;
int main()
{
	
	string A, B;
	int DA, DB;
	int a[10] = {0};
	int b[10] = {0};
	cin >>A>>DA>>B>>DB;
	int temp = 0;
	for (int i = 0; i <A.length(); i++)
	{
		a[A[i] - '0']++;
		//cout << A[i] - '0'<< endl;
	}
	for (int i = 0; i < B.length(); i++)
	{
		b[B[i] - '0']++;
		//cout << A[i] - '0'<< endl;
	}
	//cout<<a[DA]<<endl;
	int aa = a[DA];
	int resa = 0;
	//cout<<b[DB]<<endl;
	int bb = b[DB];
	int resb = 0;
	for (int i = 0; i <aa; i++)
	{
		resa = resa + (int)pow(10,i)*DA;
	}
	//cout << resa<< endl;
	for (int i = 0; i < bb; i++)
	{
		resb = resb + (int)pow(10, i) * DB;
	}
	//cout << resb << endl;
	cout<<resa+resb<<endl;

	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
旋转变压器---数字转换器作为现代伺服系统中被广泛使用的角位置测量系统,大量应用于高精度及大中型数控系统、机器人控制、工业控制、武器火力控制及惯性导航领域中。 传统的角测量系统面临的问题有:体积、重量、功耗偏大,调试、误差补偿试验复杂,费用较高。本文从微型化、智能化的方向进行研究,是解决传统角测量系统所面临问题的好途径。 本文所研究的旋转变压器---数字转换器是由信号调理模块、系统芯片C8051F064和输出控制模块组成的。整个系统的三路输入信号为X=AsinOcosar、Y=Acosθcos ot和Z=Ucosar(基准信号),输出信号为偏转角θ,输出形式为16 位数字量。信号调理模块是由模拟电路组成的,包括信号输入电路、相敏整流电路、滤波电路和直流稳压电源电路,其难点在于相敏整流电路的设计。信号调理模块的主要功能是把输入的交流信号X=AsinOcosor、Y=Acosθcosot转变成直流信号Bsinθ和Bcosθ,并使输出的直流信号在0~2.4V之间;系统芯片C8051F064是CYGNAL公司近年来推出的一款功能齐全的完全集成的混合信号片上系统型单片机。在本文所设计的系统中,系统芯片的输入信号为直流信号Bsinθ和Bcosθ,通过片内自带的2个16位A/D转换器对输入信号的数据进行采样和转换,并对转换完的数据进行滤波处理,以减小由于外界干扰而产生的误差,再用除法和反正切函数解算出偏转角θ的16位数字量;输出控制模块主要完成的功能是通过UARTO向计算机实时发送由单片机计算出来的偏转角度0的16位数字量,而串口的RS-232电平与单片机系统采用的是TTL电平之间的转换所采用的转换芯片是MC1488和MC1489。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值