- 博客(12)
- 收藏
- 关注
原创 HENAU 冬令营 数学专题
A - A^B Mod C给出3个正整数A B C,求A^B Mod C。例如,3 5 8,3^5 Mod 8 = 3。Input3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)Output输出计算结果Sample Input3 5 8Sample Output3#include<stdio.h>int mod(long long a,long long b,long long c){ int
2022-01-18 13:29:51 137
原创 HENAU 冬令营 搜索专题
A 棋盘问题在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n当为-1 -1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘.
2022-01-14 19:04:58 119
原创 K - 剪花布条
先找到第二个字符串的首字符在第一个字符串中 位置,在以第二个字符串长度为标准写一个for循环,判断第一个字符串这个位置后面的字符是否与第二个相同,相同则加一,再将此位置加上第二个字符串长度,在进行下一次的比较#include<stdio.h>#include<string.h>int main(){ const int n=1e6+10; long long i,j; char a[n]; char s[n]; while(scanf("%s",a)!=EO
2022-01-09 17:59:44 53
原创 I - 验证子串
可以采用string函数中的strstr函数#include<stdio.h>#include<string.h>int main(){ char a[20000]; char s[20000]; gets(a); gets(s); if(strstr(a,s)!=NULL) printf("%s is substring of %s",s,a); else if(strstr(s,a)!=NULL) printf("%s is substring of
2022-01-09 17:52:04 58
原创 H - 字典序
可以采用string.h的函数直接判断大小#include<stdio.h>#include<string.h>int main(){ char a[20000]; char s[20000]; gets(a); gets(s); if(strcmp(a,s)<0) printf("YES"); else printf("NO");}
2022-01-09 17:47:33 166
原创 G - 基础数据结构——栈(1)
判断栈是否合法,用一个字符组储存栈前面的一个字符标记一下在判断后面出现的是否与前面的相匹配#include<stdio.h>#include<string.h>int main(){ char a[200]; char s[200]; while(gets(a)) { int d=0,flag=0; for(int i=0;i<strlen(a);i++) { if(a[i]=='('||a[i]=='['||
2022-01-09 17:46:13 241
原创 F - 判断字符串是否为回文
回文数及数字以中间为轴左右数字相同,可以把他们看成字符串,把个位十位等位数转化为坐标#include<stdio.h>#include<string.h>int main(){ char a[101]; char b[101]; gets(a); int i,flag=0; for(i=0;i<strlen(a);i++) { if(a[i]!=a[strlen(a)-1-i]) flag=1; } if(
2022-01-09 17:43:20 56
原创 E - 删除单词后缀
删除“er,ly,ing'后缀,由于他们在最后面,所以前面可以有序输出,可以根据字符串长度-2或-3来以此为条件输出前面的字符#include<stdio.h>#include<string.h>int main(){ char a[35]; gets(a); if((a[strlen(a)-1]=='r'&&a[strlen(a)-2]=='e')||(a[strlen(a)-1]=='y'&&a[strlen(a)-2]=='l
2022-01-09 17:39:57 228
原创 D - 数字反转
由于负号的位置不变所以先判断n的正负,若为负转化为正,最终结果先输出负号,在输出转化后的数,数字反转及首尾的数字交换,方法见代码的while部分#include<stdio.h>#include<string.h> int main(){ long long n;long long sum=0;scanf("%lld",&n);if(n<0) {printf("-");n=-n; }while(n>0) {sum=sum
2022-01-09 17:35:30 162
原创 C - 大小写转换
#include<stdio.h>#include<string.h>int main(){ char a[89]; while(gets(a)) { if(strcmp(a,"End of file")==0) break; for(int i=0;i<strlen(a);i++) { if(a[i]>='a'&&a[i]<='z') a[i]=a[i]-32; } printf("%s\n",a).
2022-01-09 17:30:35 120
原创 2首字母大写
先判断开头字母是否为大写,再根据题意通过分割单词的字符来确定每个单词首字母的位置注意分割单词的字符不止一个#include<stdio.h>#include<string.h>int main() {char a[100];gets(a);int i=0;if(a[i]>='a'&&a[i]<='z') {a[i]=a[i]-32; }for(i=1;a[i]!='\0';i++){if(a[i]==' '|
2022-01-09 17:27:05 190
原创 1.雷同检测
本题输入字符串时有空格 所以用gets输入,本题只用对比两个字符串的字符输出相同字符的标号就可以了注意输出的字符串的标号是从一开始的,所以最终结果都要加一#include<stdio.h>#include<string.h>int main(){ char a[201];char b[201];gets(a); gets(b);for(int i=0;i<strlen(a);i++){if(a[i]==b[i]) printf("%d "
2022-01-09 17:21:56 327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人