1.数字反转
题目描述
输入一个不小于 100 且小于 1000,同时包括小数点后一位的一个浮点数,例如123.4,要求把这个数字翻转过来,变成4.321并输出。
题解
利用string操作实现数字反转,若进行数字操作过于繁琐,直接利用字符串性质进行操作。
#include<bits/stdc++.h>
using namespace std;
string a;
signed main()
{
cin>>a;
int len=a.size();读取长度
for(int i=len-1;i>=0;i--)反转
cout<<a[i];
return 0;
}
2.P2181 对角线
题目描述
对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点。请求楚图形中对角线交点的个数。
例如,6边形:
输入格式
第一行一个n,代表边数。
输出格式
第一行输出交点数量
输入输出样例
输入 #1 3
输出 #1 0
输入 #26
输出 #215
说明/提示
50%的测试数据 3≤N≤100;
100%的测试数据 3≤N≤100000.
题解一(大佬解法)
此题求对角线交点个数,且已知没有三条线交于一点情况。四边形有两条对角线交于一点,即此题相当于求多边形内四边形个数,即n个顶点中选择4个点的情况个数。
运用排列组合,可得:n(n-1)(n-2)(n-3)/4x3x2x1
根据测试数据范围,需要将数据类型提升精度,
或将公式转化为:n(n-1)/2*(n-2)/3*(n-3)/4
不会发生除不尽导致的向下取整的原因:
n和(n-1)两数中一定有一个能够被2整除,n、(n-1)、(n-2)三数中一定有一个能够被3整除,同理能够被4整除。
代码
unsigned long long n,ans;
int main()
{
scanf("%lld"