PTA
答案
异文协议
这道题我做过
展开
-
7-8 哈利·波特的考试(c语言)
【代码】7-8 哈利·波特的考试(c语言)原创 2023-04-08 21:37:09 · 73 阅读 · 0 评论 -
自测-4 Have Fun with Numbers
#include<stdio.h>int main(){ char s[20],t[20]; int a=1,n=0,m=0; scanf("%s",s); t[0]=s[0]*2-48; if(s[0]>52){ t[0]-=10; printf("No\n"); m=1; } for(;s[a];a++){ t[a]=s[a]*2-48; if(s原创 2022-11-23 14:33:41 · 93 阅读 · 0 评论 -
自测-2 素数对猜想
#include<stdio.h>int main(){ int a,b=3,s=0,n=5,m; scanf("%d",&a); for(;n<=a;n+=2){ for(m=3;n%m&&m*m<n;m+=2); if(m*m>n){ if(n-b==2){ s++; } b=n;原创 2022-11-18 14:02:48 · 53 阅读 · 0 评论 -
自测-1 打印沙漏
#include<stdio.h>int main(){ int a,c=0,n=3,m=1; char b; scanf("%d %c",&a,&b); for(;m<=a;n+=2){ m+=n*2; } a-=m-(n-2)*2; for(n-=4;n>1;n-=2){ for(m=0;m<n;m++){ printf("%c",b);原创 2022-11-16 13:11:08 · 172 阅读 · 0 评论 -
7-7 六度空间
#include<stdio.h>void dfs(int a,int *s,int n,int m){ if(m>6){ return; } m++; int k=1; for(;k<=a;k++){ if(s[n*a+k]){ if(!s[k]){ s[0]++; s[k]=m; dfs原创 2022-10-30 11:59:10 · 91 阅读 · 0 评论 -
7-6 列出连通集
#include<stdio.h>int a[10][11]={0},b;void dfs(int c);int main(){ int c,e,f,g[10],n=0,m; scanf("%d%d",&b,&c); for(;n<c;n++){ scanf("%d%d",&e,&f); a[e][f]=a[f][e]=1; } for(n=0;n<b;n++){ .原创 2021-12-14 02:30:17 · 892 阅读 · 0 评论 -
7-3 树的同构
pta原创 2022-07-15 11:35:49 · 58 阅读 · 0 评论 -
7-21 求特殊方程的正整数解
本题要求对任意给定的正整数N,求方程X^2 +Y^2 =N的全部正整数解。原创 2022-07-14 15:44:03 · 268 阅读 · 0 评论 -
7-24 约分最简分式
#include<stdio.h>int zz(int,int);int main(){ int a,b,c; scanf("%d/%d",&a,&b); if(a<b){ c=zz(b,a); }else{ c=zz(a,b); } printf("%d/%d",a/c,b/c);}int zz(int a,int b){ int c; for(;a%b!=0;.原创 2022-07-14 15:40:18 · 50 阅读 · 0 评论 -
7-22 龟兔赛跑
#include<stdio.h>int main(){ int a,b=0,c=0; scanf("%d",&a); if(a<=10){ printf("^_^ %d",a*9); return 0; } for(a-=10;a>0;a-=10){ b+=90; c+=30; if(b>c){ if(a<=30){.原创 2022-07-14 15:34:11 · 54 阅读 · 0 评论 -
7-2 一元多项式的乘法与加法运算(复习)
加法部分与上次不同#include<stdio.h>int main(){ int a,n=0,m,k=0; scanf("%d",&a); int b[a],c[a],d; for(;n<a;n++){ scanf("%d%d",&b[n],&c[n]); } scanf("%d",&d); int e[d],f[d],g[a*d],h[a*d]; for(n=0;n&l原创 2022-07-14 15:29:21 · 251 阅读 · 0 评论 -
7-5 堆中的路径
这题小顶堆的排序过程,例:#include<stdio.h>int main(){ int a,b; scanf("%d%d",&a,&b); int c[a],e,n=1,m; scanf("%d",&c[0]); for(;n<a;n++){ scanf("%d",&e); for(m=n;m>0&&c[(m-1)/2]>e;m=(m-1)/2){原创 2021-11-29 17:01:52 · 529 阅读 · 0 评论 -
7-4 是否同一棵二叉搜索树
#include<stdio.h>int ss(int *a,int *b,int c);int main(){ int a,b,c[10],d[10],n,m; scanf("%d",&a); for(;a;){ scanf("%d",&b); for(n=0;n<a;n++){ scanf("%d",&c[n]); } for(n=0;n<原创 2021-11-10 16:14:08 · 86 阅读 · 0 评论 -
L1-009 N个数求和
#include<stdio.h>int main(){ long a,b=0,c=1,d,e,f=0,g,h=0,i,n=0,m; scanf("%ld",&a); for(;n<a;n++){ scanf("%ld/%ld",&d,&e); f+=d/e; d%=e; if(d<0){ d=-d; h=1;原创 2021-11-09 19:43:04 · 113 阅读 · 0 评论 -
7-19 支票面额
import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(),n=0,m; for(;n<100;n++){ for(m=0;m<100;m++){ if(98*n-199*原创 2021-10-17 19:05:32 · 74 阅读 · 1 评论 -
7-17 爬动的蠕虫
import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(),b=sc.nextInt(),c=sc.nextInt(),n=1; for(a-=b;a>0;n+=2){ a+=c-b; }原创 2021-10-16 16:58:15 · 58 阅读 · 0 评论 -
7-18 二分法求多项式单根
import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); double a[]=new double[6],b,c; int n=0; for(;n<6;n++){ a[n]=sc.nextDouble(); }原创 2021-10-16 16:55:36 · 121 阅读 · 0 评论 -
7-16 求符合给定条件的整数集
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=0,m,a=sc.nextInt(),b,c=a; for(;n<4;n++){ if(n>0){ System.out.println原创 2021-10-09 14:50:55 · 68 阅读 · 0 评论 -
7-15 计算圆周率
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); double a=sc.nextDouble(),b=1/3.0,s=1,n=2; for(;b>=a;n++){ s+=b; b*=n/(2*n+1);原创 2021-10-04 16:36:04 · 53 阅读 · 0 评论 -
7-14 求整数段和
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(),b=sc.nextInt(),s,n=0; s=(a+b)*(b-a+1)/2; for(;a<=b;a++,n++){ if(n&原创 2021-10-04 16:35:31 · 70 阅读 · 0 评论 -
7-13 日K蜡烛图
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); double a=sc.nextDouble(),b=sc.nextDouble(),c=sc.nextDouble(),d=sc.nextDouble(),p=0; if(a>d){原创 2021-10-04 16:34:57 · 70 阅读 · 0 评论 -
7-12 两个数的简单计算器
import java.util.Scanner;public class Main{ public static void main (String[] args){ Scanner sc=new Scanner(System.in); String a=sc.next(),b=sc.next(),c=sc.next(); int d=Integer.valueOf(a); char[] e=b.toCharArray();原创 2021-10-04 16:34:09 · 161 阅读 · 0 评论 -
7-11 分段计算居民水费
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); double a=sc.nextDouble(); if(a>15){ System.out.print(String.format("%.2f",2.5*a-17.5));原创 2021-10-04 16:33:14 · 185 阅读 · 0 评论 -
7-10 计算工资
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(),b=sc.nextInt(); if(a<5){ a=30; }else{ a=50; } if(b>4原创 2021-10-04 16:32:35 · 174 阅读 · 0 评论 -
7-9 用天平找小球
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(),b=sc.nextInt(),c=sc.nextInt(); if(a==b){ System.out.print("C"); }else if(a==c){原创 2021-10-04 16:31:41 · 64 阅读 · 0 评论 -
7-8 超速判断
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(); if(a>60){ System.out.print("Speed: "+a+" - Speeding"); }else{ Syst原创 2021-10-04 16:30:34 · 150 阅读 · 0 评论 -
7-7 12-24小时制
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); String a=sc.next(); char[] b=a.toCharArray(); int n=0,c,d=a.length(),p=0; for(;b[n]!=':';n++); c=原创 2021-09-23 13:31:50 · 108 阅读 · 0 评论 -
7-6 混合类型数据格式化输入
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); double a=sc.nextDouble(); String b=sc.next(); String c=sc.next(); double d=sc.nextDouble(); Syste原创 2021-09-23 13:31:02 · 137 阅读 · 0 评论 -
7-5 表格输出
import java.util.Scanner;public class Main{ public static void main(String[] args){ System.out.print("------------------------------------\nProvince Area(km2) Pop.(10K)\n------------------------------------\nAnhui 139600.00 6461.原创 2021-09-23 13:30:20 · 90 阅读 · 0 评论 -
7-4 BCD解密
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(); System.out.print(a/16*10+a%16); }}原创 2021-09-23 13:29:19 · 49 阅读 · 0 评论 -
7-3 逆序的三位数
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); String a=scan.next(); char[] b=a.toCharArray(); int n=2,q=0; for(;n>=0;n--){ if(b[n]!='0原创 2021-09-23 13:28:07 · 99 阅读 · 0 评论 -
7-2 然后是几点
import java.util.Scanner;public class Main{ public static void main(String[] args){ int a,b,c; Scanner scan=new Scanner(System.in); a=scan.nextInt(); b=scan.nextInt()+a%100+a/100*60; a=b/60*100+b%60; if(a<100){ .原创 2021-09-23 13:25:20 · 81 阅读 · 0 评论 -
7-1 厘米换算英尺英寸
import java.util.Scanner;public class Main{ public static void main(String[] args){ int f,i; int c; Scanner scan=new Scanner(System.in); c=scan.nextInt(); f=(int)(c*0.01/0.3048); i=(int)(12*(c*0.01/0.3048-f)); System.out.println((int)f+" ".原创 2021-09-20 14:29:21 · 51 阅读 · 0 评论 -
L1-005 考试座位号
#include<stdio.h>int main(){ int a,n,m; scanf("%d",&a); char b[a][17]; int c[a][2],d,e; for(n=0;n<a;n++){ scanf("%s",b[n]); scanf("%d%d",&c[n][0],&c[n][1]); } scanf("%d",&d); for(n=.原创 2021-05-18 10:55:15 · 42 阅读 · 0 评论 -
L1-008 求整数段和
#include<stdio.h>int main(){ int a,b,n,m=0,s=0; scanf("%d%d",&a,&b); for(n=a;n<=b;n++){ s+=n; printf("%5d",n); m++; if(m&&!(m%5)){ printf("\n"); } } if(m%5){.原创 2021-05-29 13:54:21 · 35 阅读 · 0 评论 -
1008 数组元素循环右移问题
#include<stdio.h>int main(){ int a,b; scanf("%d%d",&a,&b); int c[a],d,n=b%a; for(d=n;n<a;n++){ scanf("%d",&c[n]); } for(n=0;n<d;n++){ scanf("%d",&c[n]); } printf("%d",c[0]); .原创 2021-05-23 11:24:50 · 57 阅读 · 0 评论 -
第3章-2 查验身份证
a=int(input())b=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]c=['1','2','3','4','5','6','7','8','9','0']e=['1','0','X','9','8','7','6','5','4','3','2']r=1for n in range(a): d=input() p=0 s=0 for m in range(17): q=1 for k in c .原创 2021-06-06 13:56:17 · 147 阅读 · 0 评论 -
7-4 奇葩楼层
#include<stdio.h>int main(){ int a,b; scanf("%d%d",&a,&b); printf("%d",a-a/10-(a%10>b)-9*(a/100+(a%100>b*10))-81*(a>b*100));}原创 2021-05-21 07:50:11 · 166 阅读 · 0 评论 -
习题3.10 汉诺塔的非递归实现
1.递归解法#include<stdio.h>char a[3]={'a','c','b'};int an(int);void hnt(int);int main(){ int b,n; scanf("%d",&b); if(b%2){ a[1]='b'; a[2]='c'; } b=an(b); for(n=1;n<b;n++){ hnt(n); }}int a原创 2021-05-21 10:36:48 · 148 阅读 · 0 评论 -
第4章-30 找完数
a,b=map(int,input().split())p=1for n in range(a,b+1): s=1 c=[] e=0 g=n**0.5 f=int(g) if f!=g: f+=1 for m in range(2,f): if not(n%m): d=int(n/m) s+=m+d if s>n: .原创 2021-06-18 11:33:26 · 135 阅读 · 0 评论