一次性输入多个数:
a,b=map(float,input().split())
可以使用列表代替a,b可以使用不同的类型代替float。
整数
%o —— oct 八进制
%d —— dec 十进制
%x —— hex 十六进制
浮点数
%f ——保留小数点后面六位有效数字
%.3f,保留3位小数位
%e ——保留小数点后面六位有效数字,指数形式输出
%.3e,保留3位小数位,使用科学计数法
%g ——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法
%.3g,保留3位有效数字,使用小数或科学计数法
round(number[, ndigits])
参数:
number - 这是一个数字表达式。
ndigits - 表示从小数点到最后四舍五入的位数。默认值为0。
返回值
该方法返回x的小数点舍入为n位数后的值。
字符
%s
%10s——右对齐,占位符10位
%-10s——左对齐,占位符10位
%.2s——截取2位字符串
%10.2s——10位占位符,截取两位字符串
format
(1)不带编号,即“{}”
(2)带数字编号,可调换顺序,即“{1}”、“{2}”
(3)带关键字,即“{a}”、“{tom}”
'b' - 二进制。将数字以2为基数进行输出。
'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
'd' - 十进制整数。将数字以10为基数进行输出。
'o' - 八进制。将数字以8为基数进行输出。
'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。
< (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐
取位数“{:4s}”、"{:.2f}"等
百分数显示{:.2%}
>>> print('{} {}'.format('hello','world')) # 不带字段
hello world
>>> print('{0} {1}'.format('hello','world')) # 带数字编号
hello world
>>> print('{0} {1} {0}'.format('hello','world')) # 打乱顺序
hello world hello
>>> print('{1} {1} {0}'.format('hello','world'))
world world hello
>>> print('{a} {tom} {a}'.format(tom='hello',a='world')) # 带关键字
world hello world
>>> print('{0:b}'.format(3))
11
>>> print('{:c}'.format(20))
>>> print('{:d}'.format(20))
20
>>> print('{:o}'.format(20))
24
>>> print('{:x}'.format(20))
14
>>> print('{:e}'.format(20))
2.000000e+01
>>> print('{:g}'.format(20.1))
20.1
>>> print('{:f}'.format(20))
20.000000
>>> print('{:n}'.format(20))
20
>>> print('{:%}'.format(20))
2000.000000%
>>>
#时间表示
>>> import datetime
>>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)
>>> '{:%Y-%m-%d %H:%M:%S}'.format(d)
'2010-07-04 12:15:58'
##钱进制表示
>>> '{:,}'.format(1234567890)
'1,234,567,890'
#include
#include
double cacu(double a,double b,double c){
double p=0;
p=0.5*(a+b+c);
return (sqrt(p*(p-a)*(p-b)*(p-c)));
}
int main(void){
double a=0,b=0,c=0,S=0;
scanf("%lf %lf %lf",&a,&b,&c);
S=cacu(a,b,c);
printf("%.1lf",S);
return 0;
}
思路很简单,
首先不会有三条对角线交与一点,所以过某交点只能有两条对角线;
其次,两条对角线其实确定了四个点(可以这么理解)
四个顶点构成一个四边形
所以每个顶点由一个四边形造成
因此我们只需要计算出该四边形有多少个即可,即: A n 4 A_n^4 An4。
#一开始思路
#include
int C1(int n,int a){
if (a==n-4) return 1;
return(a*C1(n,a-1));
}
int main(void){
int a=0,b=0;
scanf("%d",&a);
if (a>4){
int n=a;
b=C1(n,a)/24;
printf("%d",b);
}
else if(a==4){
printf("1");
}
else{
printf("0");
}
return 0;
}
这个程序虽然可以手动测试成功但是上传到服务器会出现问题,问题在于其数据范围超出了。
#include
int main(void){
unsigned long long a=0,b=0;
scanf("%lld",&a);
# b=a*(a-1)*(a-2)*(a-3)/24;
b=a*(a-1)/2*(a-2)/3*(a-3)/4;
printf("%lld",b);
return 0;
}
这个地方存在一个小技巧 b=a*(a-1)*(a-2)*(a-3)/24;改成 b=a*(a-1)/2*(a-2)/3*(a-3)/4;
一些数字可能拥有以下的性质:
小A 喜欢这两个性质同时成立的数字;Uim 喜欢这至少符合其中一种性质的数字;八尾勇喜欢刚好有符合其中一个性质的数字;正妹喜欢不符合这两个性质的数字。
#include
#include
int judge(int num){
if(num%2==0){
if(num>4&&num<=12){
return 4; //A,U
}
return 3; //U.8
}
else if(num>4&&num<=12){
return 3; //U.8
}
return 2; //zheng
}
int main(void){
int a=0,choice;
scanf("%d",&a);
choice=judge(a);
switch (choice) {
case 4:printf("1 1 0 0"); break;
case 3:printf("0 1 1 0"); break;
default:
printf("0 0 0 1");
}
return 0;
}
输入一个年份(大于 1582 的整数 ),判断这一年是否是闰年,如果是输出 1,否则输出 0。
#include
#include
int judge(int num){
if(num%4==0){
if(num%400==0)
return 1;
else if(num%100==0)
return 0;
return 1;
}
return 0;
}
int main(void){
int a=0,choice;
scanf("%d",&a);
choice=judge(a);
printf("%d",choice);
return 0;
}
#include
#include
int judge(int num){
if(num==0){
return 0;
}
else if(num==1)
return 1;
return 2;
}
int main(void){
int a=0,choice;
scanf("%d",&a);
if(a==0){
printf("Today, I ate 0 apple.");
return 0;
}
else if(a==1){
printf("Today, I ate 1 apple.");
}
else{
printf("Today, I ate %d apples.",a);
}
return 0;
}
如果在自己的电脑上配置题目和测试数据,每题需要花费时间 5 分钟;而在洛谷团队中上传私有题目,每题只需要花费 3 分钟,但是上传题目之前还需要一次性花费 11 分钟创建与配置团队。现在要配置 n(n<=100)n(n≤100) 道题目,如果本地配置花费的总时间短,请输出 Local
,否则输出 Luogu
。
#include
int main(void){
int a=0,local,luogu;
scanf("%d",&a);
local=a*5;
luogu=11+3*a;
if(local<=luogu){
printf("Local");
}
else {
printf("Luogu");
}
return 0;
}
#include
int main(void){
double m,h,BMI;
scanf("%lf %lf",&m,&h);
BMI=m/(h*h);
if (BMI<18.5){
printf("Underweight");
}
else if (BMI>=18.5&&BMI<24){
printf("Normal");
}
else{
printf("%.6g\n",BMI);
printf("Overweight");
}
return 0;
}
给出三个整数 a,b,c(0<=a,b,c<=100)a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。
#include
int main(void){
int m,h,n;
scanf("%d %d %d",&m,&h,&n);
if (m>=h&&m>=n&&h>=n){
printf("%d %d %d",n,h,m);
}
else if (m>=h&&m>=n&&n>=h){
printf("%d %d %d",h,n,m);
}
else if (h>=m&&m>=n&&h>=n){
printf("%d %d %d",n,m,h);
}
else if (n>=m&&m>h&&n>=h){
printf("%d %d %d",h,m,n);
}
else if (h>=m&&n>m&&n>=h){
printf("%d %d %d",m,h,n);
}
else{
printf("%d %d %d",m,n,h);
}
return 0;
}
输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年
#include
int judge(int a){
if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)
printf("31");
else
printf("30");
}
int judge_run(int num){
if(num%4==0){
if(num%400==0)
return 1;
else if(num%100==0)
return 0;
return 1;
}
return 0;
}
int main(void){
int year,month,day;
scanf("%d %d",&year,&month);
if(month==2){
if(judge_run(year)) {
printf("29");
return 0;
}
else printf("28");
return 0;
}
judge(month);
return 0;
}
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如x-xxx-xxxxx-x
,其中符号-
就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4
就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符-
之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以11加上次位数字乘以22……以此类推,用所得的结果mod11,所得的余数即为识别码,如果余数为10,则识别码为大写字母XX。例如ISBN号码0-670-82162-4
中的识别码4是这样得到的:对067082162
这9个数字,从左至右,分别乘以1,2,…,9再求和,即0×1+6×2+……+2×9=158然后取158mod11的结果4作为识别码。
你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出Right
;如果错误,则输出你认为是正确的ISBN号码。
需要库函数#include
● atof():将字符串转换为双精度浮点型值。
● atoi():将字符串转换为整型值。
● atol():将字符串转换为长整型值。
● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。
● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
● strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。
● itoa():将整型值转换为字符串。
● ltoa():将长整型值转换为字符串。
●ultoa():将无符号长整型值转换为字符串。
● gcvt():将浮点型数转换为字符串,取四舍五入。
● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。
● fcvt():指定位数为转换精度,其余同ecvt()。
#include
#include
#include
int main(void){
char s[100];
int num[100];
int all=0;
int len;
scanf("%s",s);
len=strlen(s);
for(int i=0;i
#include
int main()
{
long int a1,b1,c;
int a2,b2;
scanf("%d",&a2);
scanf("%ld",&a1);
b1=a1/7;
b2=a1%7;
c=b1*250*5;
if((b2+a2)==6)
{
c=c+(b2-1)*250;
printf("%ld",c+250);
}
else if((b2+a2)>6)
{
c=c+(b2-2)*250;
printf("%ld",c+250);
}
else if(b1==0&&(((b2-1)+a2)>=6)&&((b2-1)+a2)<=7)
{printf("%ld",c+250);}
else{
c=c+(b2)*250;
printf("%ld",c);
}
return 0;
}
偷懒做法,改动三位数排序
#include
#include
int a,b,c,a1,b1,c1;
void paixu(){
if(a>=b&&a>=c){ //a is max
a1=a;
if(b>=c) {
b1=b;
c1=c;
} else{
b1=c;
c1=b;}
}
if(b>=a&&b>=c){ //a is max
a1=b;
if(a>=c) {
b1=a;
c1=c;
} else{
b1=c;
c1=a;}
}
if(c>=b&&c>=a){ //a is max
a1=c;
if(b>=a) {
b1=b;
c1=a;
} else{
b1=a;
c1=b;}
}
}
int main(void){
scanf("%d %d %d",&a,&b,&c);
paixu(a,b,c,a1,b1,c1);
if(c1+b1
#include
#include
int a,b,c,a1,b1,c1;
void paixu(){
if(a>=b&&a>=c){ //a is max
a1=a;
if(b>=c) {
b1=b;
c1=c;
} else{
b1=c;
c1=b;}
}
if(b>=a&&b>=c){ //a is max
a1=b;
if(a>=c) {
b1=a;
c1=c;
} else{
b1=c;
c1=a;}
}
if(c>=b&&c>=a){ //a is max
a1=c;
if(b>=a) {
b1=b;
c1=a;
} else{
b1=a;
c1=b;}
}
}
int main(void){
char n,m,l;
scanf("%d %d %d ",&a,&b,&c);
scanf("%c%c%c",&m,&n,&l);
paixu();
// printf("%c-%c-%c-",m,n,l);
//printf("%d %d %d",a1,b1,c1);
if(m=='A'){
printf("%d ",c1);
} else if(m=='B'){
printf("%d ",b1);
} else{
printf("%d ",a1);
}
if(n=='A'){
printf("%d ",c1);
} else if(n=='B'){
printf("%d ",b1);
} else{
printf("%d ",a1);
}
if(l=='A'){
printf("%d ",c1);
} else if(l=='B'){
printf("%d ",b1);
} else{
printf("%d ",a1);
}
return 0;
}
改了半天最后三个数据超时,只能开挂了QAQ,可以打表AC。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/7/23 9:49
# @Author : F4sthand
# @File : temp.py
import math
def sushu(a):
b=int(math.sqrt(a+1))
for i in range(2,b+1):
if(a%i==0):
return 0
return 1
def string_reverse(str):
return str[::-1]
def huiwen(a):
a1=str(a)
a2=string_reverse(a1)
if(a1==a2):
return 1
return 0
def guolv(a):
if((a%2==0)or(a%3==0)):
return 0
else:
return 1
if __name__ == '__main__':
a, b = map(int,input().split())
if((a%2==0)):
for i in range(a+1,b,2):
if(guolv(i)):
if(huiwen(i)):
if(sushu(i)):
print(i)
else:
for i in range(a,b):
if(guolv(i)):
if(huiwen(i)):
if(sushu(i)):
print(i)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/7/23 9:49
# @Author : F4sthand
# @File : temp.py
def string_reverse(str):
return str[::-1]
if __name__ == '__main__':
a=input()
if(str(a)[0]!='-'):
b=string_reverse(str(a))
print("%d" % int(b))
else:
b=string_reverse(str(a)[1:])
print("-%d"%int(b))
#include
int main(void){
int max=0,min= 10000,num,temp;
scanf("%d",&num);
for(int i=0;imax) max=temp;
if(temp