CSDN第37期编程竞赛活动经验
创始人
2025-05-30 01:17:30
0

1、题目名称:幼稚班作业

幼稚园终于又有新的作业了。 老师安排同学用发给同学的4根木棒拼接成一个三角形。 当然按照正常的逻辑,如果不能拼
接成三角形。 必然要折断某个木棍来拼接三角形。 可是懒惰的小艺当然不会费力了! 如果拼接不成三角形,小艺就会把
它拼接成类似边长 1 1 2的伪三角形(两边之和等于第3边)。 如果伪三角形都拼接不成那就不交作业!

每日一题的原题
重点是,不要4个数都用,只要用3个数,这样将4个数从小到大排序后,判断前3个或者后3个,能不能组成三角形,伪三角。

#include  
#include  
int cmp(const void*pa,const void*pb) {int a=*(int*)pa;int b=*(int*)pb;return a>b;
}
void solution(int *arr) {qsort(arr,4,sizeof(int),cmp);if(arr[0]+arr[1]>arr[2]||arr[1]+arr[2]>arr[3]) {printf("1");} else if(arr[0]+arr[1]==arr[2]||arr[1]+arr[2]==arr[3]) {printf("0");} else {printf("-1");}
}
int main() {int arr[4];for (int i = 0; i < 4; i++) {scanf("%d", &arr[i]);}solution(arr);return 0;
}

2、题目名称:异或和

小张找到了一个整数 N,他想问问你从 1 到 N 的所有不同整数的异或和是多少, 请你回答他的问题。
此题由CSDN用户a23333a提供。

部分语言自带异或支持,直接求就行,就比较简单。
这里数字int型就够用了,
int有32位,每位都有对应权值
每次%2获取最后一位的数字,不同就加上该位的权值就行
/2进行下一次循环

#include 
#include  
int check(int a,int b) {int s=0;int flag=1;int times=32;int count=0;while(countif(a%2!=b%2) {s+=flag;}a/=2;b/=2;flag*=2;count++;if(a==0&&b==0) {break;}}return s;
}
void solution(int N) {int s=0;for (int i=1;i<=N;i++) {s=check(s,i);}printf("%d",s);
}
int main() {int N;scanf("%d", &N);solution(N);return 0;
}

3、题目名称:大整数替换数位

以字符串的形式给你一个长度为 M 的整数 N,请你计算出对这个数进行一次操作后模 9 的值为 1 的所有可能的不同操作
方式。
在一次操作中, 我们可以选择 N 的一个数位 N[i],并把它替换成另一个不同的 0 到 9 范围之内的数 B,当且仅当它们选
择的 i 或 B 不同时两种操作方式不同。
此题由CSDN用户a23333a提供

要有一定的数学知识。
各位数字之和是3的倍数则该数字是3的倍数
各位数字之和是9的倍数则该数字是9的倍数
所以
各位数字之和模9后余一则该数字也模9后余一
根据这个结论问题就简单了
注意输入的数字要当字符串处理

#include  
#include  
void solution( int N,char*arr) {int count=0;for (int i=0;iint c=arr[i]-'0';count+=c;}int s=0;for (int i=0;iint c=arr[i]-'0';int tmp=count-c;for (int j=0;j<10;j++) {if(j==c) {continue;}if((tmp+j)%9==1) {s++;}}}printf("%d",s);
}
int main() {int N;scanf("%d", &N);char*arr=(char*)malloc(sizeof(char)*(N+1));arr[N]=0;scanf("%s", arr);solution(N,arr);return 0;
}

4、题目名称:莫名其妙的键盘

有一个神奇的键盘,你可以用它输入a到z的字符,然而每当你输入一个元音字母(a,e,i,o,u其中之一)的时候,已输入的字
符串会发生一次反转! 比方说,当前输入了tw,此时再输入一个o,此时屏幕上的字符串two会反转成owt。 现给出一个
字符串,若用该键盘输入,有多少种方法可以得到?

考过多次了吧。
根据首尾是不是元音字母进行递归即可。
公式如下

直接用了别人的图
如果字符串长度为1,返回1

#include  
#include  
#include  
int flag[1000]= {0
}
;
int checkch(char ch) {if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u') {return 1;} else {return 0;}
}
int count(char*str) {int len=strlen(str);if(len==1) {return 1;}char str2[1024]= {0};memcpy(str2,str,len-1);char str3[1024]= {0};for (int i=len-1;i>0;i--) {str3[len-1-i]=str[i];}if(checkch(str[len-1])) {if(checkch(str[0])==0) {return 0;}return count(str3);}if(checkch(str[0])) {return count(str2)+count(str3);}return count(str2);
}
void solution(char*str) {int s=count(str);printf("%d",s);
}
int main() {char str[1000];scanf("%s", str);solution(str);return 0;
}

相关内容

热门资讯

4枚导弹打醒了俄罗斯,普京向北... 当地时间2025年11月19日,俄罗斯国防部通报,当地时间2025年11月18日,乌克兰武装部队发射...
每周股票复盘:碧兴物联(688... 截至2025年11月21日收盘,碧兴物联(688671)报收于21.08元,较上周的24.15元下跌...
比分4比0 射门次数20比0 ... 11月22日,在2026亚足联U17亚洲杯预选赛A组的一场比赛中,U16国足在主场4比0大胜巴林队,...
每周股票复盘:*ST海钦(60... 截至2025年11月21日收盘,*ST海钦(600753)报收于7.92元,较上周的8.0元下跌1....
每周股票复盘:易德龙(6033... 截至2025年11月21日收盘,易德龙(603380)报收于35.04元,较上周的37.1元下跌5....
2026-27赛季亚冠中国球队... 随着中超联赛的落幕,2026-27赛季亚冠联赛中国球队的参赛资格也基本确定。中国足球在不断发展,球队...
原创 中... 日本虽派人登门协商,中方却在会后直言“不满意”,高市早苗焦头烂额之际,外媒开始给日本狂打鸡血,特朗普...
头皮发麻!吃烤肉时从嘴里掉出一... 近日,有市民向广州日报新花城记者反映,在与朋友食用烤肉的过程中,朋友吃着与烤肉搭配的生菜时口里有“诡...
每周股票复盘:万林物流(603... 截至2025年11月21日收盘,万林物流(603117)报收于5.22元,较上周的5.47元下跌4....
每周股票复盘:上海亚虹(603... 截至2025年11月21日收盘,上海亚虹(603159)报收于21.69元,较上周的23.1元下跌6...