在擦拭桌子的期间,其中一位志愿者发现有的桌子有晃动,聪明的志愿者立马想到了三角形具有稳定性的原理。 为了组成三角形,志愿者找来了三块木棒,长度分别为a,b,c。现在聪明的你能告诉我们这三块木棒能组成等腰三角形吗?
输入:
多组测试数据
输入三个正整数a、b和c,分别代表三角形三条边(a,b,c均在int范围内)。
输出:
如果是等腰三角形输出"Yes",否则输出"No"。
样例输入:
1 2 2
样例输出:
Yes
原因分析:
1.虽然题目说 (a,b,c均在int范围内),但是求两边和的时候,有可能超int数据范围,所以int改为long long 就可以了.
2.只给出了一个示例,会误以为不是多实例,但是题目说多实例输入,所以注意审题.
解决方案:
#include2. 问题 E: 打印图形int main() { int t; scanf("%d",&t); while(t--) { long long a,b,c; scanf("%lld%lld%%lld",&a,&b,&c) if(a+b>c&&a+c>b&&b+c>a) { if(a==b||a==c||b=c) printf("Yesn"); else printf("Non"); } else printf("Non"); } }
问题描述:
根据输入的大写英文字母,打印如下形式的图形。 例如,输入G
A
AB
ABC
ABCD
ABCDE
ABCDEF
ABCDEFG
输入:
输入一个大写的英文字母
输出:
输出题目描述的直角三角形
样例输入:
E
样例输出:
A AB ABC ABCD ABCDE
原因分析:
本题主要点是 如何利用输入的大写字母变成 数字,从而打印多少行数的问题就解决了.
即 利用 n=x-'A'+1; 创建个数组,存下26个字母
解决方案:
#includeint main() { int i,j,k,n; char a[30]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'},x; scanf("%c",&x); n=x-'A'+1; for(i=1;i<=n;i++) { for(j=n-i;j>0;j--) printf(" "); for(k=0;k 3. 问题 I: 赛前的准备--轮班 问题描述: 经过了长时间的劳动。志愿者们都疲惫不堪(真心感谢他们),但是还有很多任务。 于是志愿者们想到了一个办法,用三个数来决定那些人来做下一个任务,这样其他人就可以休息了。
规则是这样的:三个数n、m和k,所有人自行选择一个0-9的编号,根据n/m的第k位小数的来决定哪些人来下一个任务,如果n/m的第k位小数为s,那么选择s编号的人休息 。小明太累了,于是请教你怎么能快速得出答案。输入:
多组测试数据。
每组测试数据输入有三个正整数n,m,k。(1<=n, m<=1000, 1<=k<=100000)输出:
输出n/m的第k小数位上的数字。
样例输入:
1 2 3 1 3 3样例输出:
0 3
原因分析:高精度问题,直接按数学方法 模拟即可
1. int n1=n%m; 举个例子 10/3 之后肯定是其余数进行运算,所以首先取余.
2. m1=(n1*10)/m; m1即为小数部分 因为 10/3 余1 下一步应该是数学运算上 10/3 所以 n1*10.并且 /
3. 更新余数 n1=(n1*10)%m;
解决方案:#include#include using namespace std; int main() { int n,m,k; while(scanf("%d%d%d",&n,&m,&k)!=EOF){ int n1=n%m; int m1=0; int sum1=0; while(sum1 总结: 1. 做题时要 认真 快速 读题,筛去次要信息.
2.int 可以全部 定义为 long long 避免 超出数据范围
3.加油对字符的理解和训练



