1.数字反转
https://www.luogu.com.cn/problem/P5705
题目描述
输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出。
输入格式
一行一个浮点数
输出格式
一行一个浮点数
输入输出样例
输入 #1
123.4输出 #1
4.321
解析:思想是将小数以字符形式接收
方法1:以字符形式接收+数组+循环
#include <iostream>
#include <iomanip>
using namespace std;
char a[5];
short sum;
int main()
{while(sum<5){cin>>a[sum];sum++;}sum--;while(sum>=0){cout<<a[sum];sum--;}return 0;
}
方法2:以字符形式接收+创建5个变量依次读取,反向输出
#include <iostream>
#include <iomanip>
using namespace std;
char a,b,c,d,e;
int main()
{cin>>a>>b>>c>>d>>e;cout<<e<<d<<c<<b<<a;return 0;
}
如果用C语言写可以省一个变量
#include <stdio.h>
char a,b,c,d;
int main()
{scanf("%c%c%c.%c",&a,&b,&c,&d);printf("%c.%c%c%c",d,c,b,a);return 0;
}
方法3:以浮点数形式接收
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
float f;
short _f,a,b,c,d,e;
int main()
{cin>>f;f*=10;_f=(short)f;a=_f%10;_f/=10; b=_f%10;_f/=10;c=_f%10;_f/=10;d=_f%10;_f/=10;e=1000*a+100*b+10*c+d;cout<<e/1000.0;return 0;
}
2.奇偶数判断
奇偶数判断 - 洛谷
题目描述
给定一个整数,判断该数是奇数还是偶数。如果 n 是奇数,输出
odd
;如果 n 是偶数,输出even
。输入格式
输入仅一行,一个整数 n。
输出格式
输出仅一行,如果 n 是奇数,输出
odd
;如果 n 是偶数,输出even
。输入输出样例
输入 #1
5输出 #1
odd输入 #2
10输出 #2
even说明/提示
−100≤n≤100
代码
#include <iostream>
using namespace std;
int main()
{int n = 0;cin >> n;if (n % 2==1)cout << "odd" << endl;elsecout << "even" << endl;return 0;
}
两个测试点没过
负数%2,如果有余数,则余数为负数,不为1
改为
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{int n = 0;cin >> n;n=abs(n);if (n % 2==1)cout << "odd" << endl;elsecout << "even" << endl;return 0;
}
3.Apples Prologue / 苹果和虫子
【深基2.习6】Apples Prologue / 苹果和虫子 - 洛谷
题目描述
小 B 喜欢吃苹果。她现在有 mm(1≤m≤100)个苹果,吃完一个苹果需要花费 t(0≤t≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 s(1≤s≤10000)分钟,请问她还有几个完整的苹果?
输入格式
输入三个非负整数表示 m,t,s。
输出格式
输出一个整数表示答案。
输入输出样例
输入 #1
50 10 200输出 #1
30说明/提示
如果你出现了 RE,不如检查一下被零除?
代码
#include <iostream>
using namespace std;
int m,t,s;
int main()
{cin>>m>>t>>s;if (s>m*t-t){cout<<'0';return 0;}if (s%t==0)cout<<m-(s/t);elsecout<<m-(s/t)-1;return 0;
}
几个容易错的地方
★★★1.当s>m*t-t时,没有一个完整的苹果
2.要考虑s不能被t整除的情况
★3.t可以为0
if (s>m*t-t){cout<<'0';return 0;}
此代码已经暗含对t==0的处理(s>0恒成立)