PTA(Basic Level) Practice (中文):https://pintia.cn/problem-sets/994805260223102976/problems
1001 害死人不偿命的(3n+1)猜想 (15 分) 1006 换个格式输出整数 (15 分) 1011 A+B 和 C (15 分)
1016 部分A+B (15 分) 1021 个位数统计 (15 分) 1026 程序运行时间 (15 分)
1031 查验身份证 (15 分) 1036 跟奥巴马一起编程 (15 分) 1041 考试座位号 (15 分)
1046 划拳 (15 分) 1051 复数乘法 (15 分) 1056 组合数的和 (15 分)
1061 判断题 (15 分) 1066 图像过滤 (15 分) 1071 小赌怡情 (15 分)
1076 Wifi密码 (15 分) 1081 检查密码 (15 分) 1086 就不告诉你 (15 分)
1091 N-自守数 (15 分)
#include
using namespace std;
int main()
{
int n, count=0;
cin >> n;
if (n > 1000)
return -1;
while (n != 1)
{
if (n % 2 == 0)
{
n /= 2;
}
else
{
n = (3 * n + 1) / 2;
}
count++;
}
cout << count;
return 0;
}
#include
using namespace std;
int main()
{
int n,i,j,k; //数,百,十,个
cin >> n;
if (n > 999)
{
return -1;
}
else if (n > 99) //三位数
{
i = n / 100;
j = n / 10 % 10;
k = n % 10;
for (int l = 0; l < i; l++)
{
cout << 'B';
}
for (int l = 0; l < j; l++)
{
cout << 'S';
}
}
else if (n > 9) //两位数
{
j = n / 10;
k = n % 10;
for (int l = 0; l < j; l++)
{
cout << 'S';
}
}
else if (n > -1) //个位数
{
k = n;
}
else
return -1;
for (int l = 1; l <= k; l++)
{
cout << l;
}
return 0;
}
#include
using namespace std;
#define SIZE 10
int main()
{
int T;
long A[SIZE],B[SIZE],C[SIZE];
cin >> T;
if (T <= 0)
return 0;
for (int i = 0; i < T; i++)
{
cin >> A[i] >> B[i] >> C[i];
}
for (int i = 0; i < T; i++)
{
if (A[i] + B[i] > C[i])
{
if(i>0)
cout << endl;
cout << "Case #" << i+1 << ": true";
}
else
{
if (i > 0)
cout << endl;
cout << "Case #" << i+1 << ": false";
}
}
return 0;
}
#include
#include
using namespace std;
int main()
{
char A[11], B[11];
char Da, Db;
int count = 0;
int Pa = 0, Pb = 0;
cin >> A >> Da >> B >> Db;
for (int i = 0; A[i] != '\0'; i++)
{
if (Da == A[i])
{
Pa += (Da - '0') * pow(10, count);
count++;
}
}
count = 0;
for (int i = 0; B[i] != '\0'; i++)
{
if (Db == B[i])
{
Pb += (Db - '0') * pow(10, count);
count++;
}
}
cout << Pa + Pb;
return 0;
}
#include
using namespace std;
int main()
{
char N[1001];
char D[10] = { '0','1', '2', '3', '4', '5', '6', '7', '8', '9' };
int M[10] = { 0 };
cin >> N;
for (int i = 0; N[i] != '\0'; i++)
{
for (int j = 0; j < 10; j++)
{
if (D[j] == N[i])
{
M[j]++;
break;
}
}
}
for (int i = 0; i < 10; i++)
{
if (M[i] != 0)
cout << D[i] << ":" << M[i] << endl;
}
return 0;
}
#include
using namespace std;
int main()
{
long C1, C2;
long hours, mintinues,seconds ,sum1;
double sum2;
cin >> C1 >> C2;
sum1 = (C2 - C1) / 100;
sum2 = (C2 - C1) / 100.0;
if (sum1 + 0.5 <= sum2)
sum1++;
hours = sum1 / 3600;
mintinues = (sum1 - hours * 3600) / 60;
seconds = sum1 - hours * 3600 - mintinues * 60;
//second = sum1%60;
if (hours <= 9)
cout << '0' << hours << ":";
else
cout << hours << ":";
if (mintinues <= 9)
cout << '0' << mintinues << ":";
else
cout << mintinues << ":";
if (seconds <= 9)
cout << '0' << seconds;
else
cout << seconds;
return 0;
}
#include
#include
#include
int main()
{
int N=0;
char idCard[105][20] = {'0'};
int weight[20] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };
char M[12] = { '1', '0', 'X', '9', '8' ,'7', '6', '5', '4' ,'3' ,'2' };
int sum = 0;
int output[105] = { 0 };
int flag = 0;
scanf("%d", &N);
getchar();
for (int i = 1; i <= N; i++)
{
gets(idCard[i]);
}
for (int i = 1; i <= N; i++)
{
sum = 0;
for (int j = 0; j < 17; j++)
{
if (idCard[i][j] < '0' || idCard[i][j] > '9')
{
output[i] = 0;
flag = 1;
break;
}
sum += (idCard[i][j] - '0') * weight[j];
}
if (flag == 1)
{
flag = 0;
continue;
}
//sum %= 11;
if (M[sum%11] == idCard[i][17])
{
output[i] = i;
}
}
for (int i = 1; i <= N; i++)
{
if (output[i] == 0)
{
puts(idCard[i]);
flag = 1;
}
}
if (flag == 0)
{
printf("All passed");
}
return 0;
}
#include
int main()
{
int N, count = 1;
char C;
scanf("%d %c", &N, &C);
for (int i = 1; i <= (N % 2 == 0 ? N / 2 : (N + 1) / 2); i++)
{
if (count == 1 || count == (N % 2 == 0 ? N / 2 : (N + 1) / 2))
{
for (int j = 1; j <= N; j++)
{
printf("%c",C);
}
printf("\n");
count++;
}
else
{
printf("%c", C);
for (int j = 2; j <= N-1; j++)
{
printf(" ");
}
printf("%c\n", C);
count++;
}
}
return 0;
}
#include
#include
#define MAX 1000
struct student
{
char id[15];
int a;
int b;
}stu[MAX];
int main()
{
int N,M;
int num[MAX];
scanf("%d", &N);
for (int i = 1; i <= N; i++)
{
scanf("%s %d %d", &stu[i].id, &stu[i].a, &stu[i].b);
}
/***********************安全监测部分***********************/
for (int i = 1; i < N; i++)
{
for (int j = 0; stu[i].id[j] != '\0'; j++)//准考证号由 14 位数字组成,座位从 1 到 N 编号。
{
if (!isdigit(stu[i].id[j]))
{
return 0;
}
}
if (!strcmp(stu[i].id, stu[i - 1].id))//输入保证每个人的准考证号都不同
{
return 0;
}
if (stu[i].a == stu[i - 1].a || stu[i].b == stu[i - 1].b)//任何时候都不会把两个人分配到同一个座位上。
{
return 0;
}
}
/***********************安全监测部分***********************/
scanf("%d", &M);
for (int i = 1; i <= M; i++)
{
scanf("%d",&num[i]);
}
for (int i = 1; i <= M; i++)
{
for (int j = 1; j <= N; j++)
{
if (num[i] == stu[j].a)
{
printf("%s %d\n", stu[j].id, stu[j].b);
}
}
}
return 0;
}
#include
#define MAX 101
int main()
{
int N;
int Speak_a, Do_a, Speak_b, Do_b, Count_a = 0, Count_b = 0;
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
scanf("%d %d %d %d", &Speak_a, &Do_a, &Speak_b, &Do_b);
if ((Do_a == Speak_a + Speak_b) && (Do_b != Speak_a + Speak_b))
{
Count_b++;
}
if ((Do_b == Speak_a + Speak_b) && (Do_a != Speak_a + Speak_b))
{
Count_a++;
}
}
printf("%d %d", Count_a, Count_b);
return 0;
}
#include
#include
#define MAX 101
int main()
{
double r1, p1, r2, p2;
double a, b;
scanf("%lf%lf%lf%lf", &r1, &p1, &r2, &p2);
a = r1 * r2*(cos(p1)*cos(p2) - sin(p1)*sin(p2));
b = r1 * r2*(sin(p2)*cos(p1) + sin(p1)*cos(p2));
if (a > -0.005&&a < 0)
printf("0.00");
else
printf("%.2lf",a);
if (b > -0.005&&b < 0)
printf("+0.00i");
else if(b<=-0.005)
printf("%.2lfi",b);
else
printf("+%.2lfi",b);
return 0;
}
#include
#include
#define MAX 101
int main()
{
int N = 0;
int t = 0, count = 0, sum = 0;
int num[MAX] = { 0 }; //原始数据
int sort_num[MAX] = { 0 }; //排序后每个数据只出现一次
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
scanf("%d", &num[i]);
}
for (int i = 0; i < N - 1; i++)
for (int j = i+1; j < N; j++)
{
if (num[i] > num[j])
{
t = num[i];
num[i] = num[j];
num[j] = t;
}
}
/*for(int i=0;i
#include
#include
#define MAX 101
int main()
{
int N = 0;
int M = 0;
int t = 0;
int score[MAX] = { 0 };
int answer[MAX] = { 0 };
int student[MAX] = { 0 };
scanf("%d %d", &N, &M);
for (int i = 0; i < M; i++)
{
scanf("%d", &score[i]);
if (score[i] > 5 || score[i] < 0)
return 0;
}
for (int i = 0; i < M; i++)
{
scanf("%d", &answer[i]);
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
scanf("%d", &t);
if (t == answer[j])
{
student[i] += score[j];
}
}
}
for (int i = 0; i < N; i++)
{
printf("%d\n", student[i]);
}
return 0;
}
#include
#include
int main()
{
int M = 0;
int N = 0;
int A = 0, B = 0;
int t = 0;
int values = 0;
scanf("%d%d%d%d%d", &M, &N, &A, &B, &t);
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
scanf("%d", &values);
if (values >= A && values <= B)
values = t;
if (j != 0)
printf(" ");
printf("%03d", values);
}
printf("\n");
}
return 0;
}
#include
using namespace std;
int s,k,i,n1,n2,t,b;
int main()
{
cin>>s>>k;
for(i=1;i<=k;i++)
{
cin>>n1>>b>>t>>n2;
if(s==0)
{
printf("Game Over.");
return 0;
}
if(s>=t)
{
if((n2n1&&b==1))
{
s+=t;
printf("Win %d! Total = %d.\n",t,s);
}
else
{
s-=t;
printf("Lose %d. Total = %d.\n",t,s);
}
}
else if(s
/*
#include
using namespace std;
int main() {
int n;
cin >> n;
string str;
for (int i = 0; i < n * 4; i++) {
cin >> str;
if (str[2] == 'T') cout << (int)str[0] - 'A' + 1;
}
return 0;
}*/
#include
#define MAX 501
#define SIZE 5
int main()
{
int N = 0;
char str[MAX][SIZE];
scanf("%d", &N);
if (N > 100 || N < 0)
return 0;
for (int i = 0; i < 4 * N; i++)
{
scanf("%s", str[i]);
if (str[i][2] == 'T')
{
if (str[i][0] == 'A')
putchar('1');
else if (str[i][0] == 'B')
putchar('2');
else if (str[i][0] == 'C')
putchar('3');
else if (str[i][0] == 'D')
putchar('4');
}
}
return 0;
}
#include
#include
int main()
{
int N=0;
int i=0,j=0,k=0;
char str[100];
int digit=0,letter=0,dot=0,other=0;
scanf("%d",&N);
getchar();
for(i=0;i='0'&&str[j]<='9')
{
digit = 1;
}
else if((str[j]>='A'&&str[j]<='Z')||(str[j]>='a'&&str[j]<='z'))
{
letter = 1;
}
else if(str[j]=='.')
{
dot = 1;
}
else
{
other = 1;
}
}
if(other==1)
{
printf("Your password is tai luan le.\n");
}
else
{
if(digit==1&&letter==0)
{
printf("Your password needs zi mu.\n");
}
else if(digit==0&&letter==1)
{
printf("Your password needs shu zi.\n");
}
else
printf("Your password is wan mei.\n");
}
}
}
return 0;
}
#include
#include
#define MAX 8
int main()
{
int A = 0, B = 0;
int t = 0;
int wei[MAX] = { 0 }; //0-6:个 十 百 千 万 十万 百万
int result = 0;
scanf("%d%d",&A, &B);
if (A > 1000 || B > 1000)
return 0;
t = A * B;
wei[0] = t % 10;
wei[1] = t / 10 % 10;
wei[2] = t / 100 % 10;
wei[3] = t / 1000 % 10;
wei[4] = t / 10000 % 10;
wei[5] = t / 100000 % 10;
if (0 <= t&&t < 10)
result = wei[0];
if (10 <= t&&t < 100)
result = wei[0] * 10 + wei[1];
if (100 <= t&&t < 1000)
result = wei[0] * 100 + wei[1] * 10 + wei[2];
if (1000 <= t&&t < 10000)
result = wei[0] * 1000 + wei[1] * 100 + wei[2] * 10 + wei[3];
if (10000 <= t&&t < 100000)
result = wei[0] * 10000 + wei[1] * 1000 + wei[2] * 100 + wei[3] * 10 + wei[4];
if (100000 <= t&&t < 1000000)
result = wei[0] * 100000 + wei[1] * 10000 + wei[2] * 1000 + wei[3] * 100 + wei[4] * 10 + wei[5];
printf("%d", result);
return 0;
}
#include
#include
int main()
{
int M = 0, K = 0, N = 0, t = 0;
scanf("%d", &M);
for (int i = 0; i < M; i++)
{
scanf("%d", &K);
for (int j = 1; j < 10; j++)
{
t = K * K * j;
if (0 < K&&K < 10 && t % 10 == K)//个位数
{
printf("%d %d\n", j, t);
break;
}
else if (10 <= K&&K < 100 && t % 100 == K)//个位数
{
printf("%d %d\n", j, t);
break;
}
else if (100 <= K && K < 1000 && t % 1000 == K)//个位数
{
printf("%d %d\n", j, t);
break;
}
if (j == 9)
{
printf("No\n");
}
}
}
return 0;
}