HAUTOJ 前100题题解

1000: A+B Problem

C
#include<stdio.h> //头文件-末尾不加分号
int main(void) //void可以省略,C语言中此行的"int"可以省略,C++中不可省略
{
	int a,b,c;
	scanf("%d%d",&a,&b);
	c=a+b;
	printf("%d",c);
	return 0;//这行可以不打
}
C++
#include<iostream>
using namespace std;
int main()
{
	int a, b;
	cin >> a >> b;
	cout << a + b << endl;
}
Python
a,b=map(int,input().split())
print(a+b)
C#
using System;
namespace aandb
{
    class Program
    {
        static void Main()
        {
            int a, b;
            string s = Console.ReadLine();
            string[] t = s.Split(' ');
            a = int.Parse(t[0]);
            b = int.Parse(t[1]);
            Console.WriteLine("{0}", a + b);
        }
    }
}
Pascal
var a,b,s:integer;
begin
readln(a,b);
s:=a+b;
writeln(s);
end.

1001: 植树问题

C
void solve()
{
	int m,n;
	scanf("%d%d",&m,&n);
	printf("%d\n",m/n);
	printf("%d\n",m%n);
 } 
C#
using System;
namespace t
{
    class Program
    {
        static void Main()
        {
            int a, b;
            string s = Console.ReadLine();
            string[] t = s.Split(' ');
            a = int.Parse(t[0]);
            b = int.Parse(t[1]);
            Console.WriteLine("{0} {1}", a/b,a%b);
        }
    }
}
Python
a,b=map(int,input().split())
c=a/b
c=int(c)
d=a%b
print(c,d)

1002: 简单多项式求值

C
void solve()
{
	int a,b,y,x,c;
 	scanf("%d",&x);
 	a=x*x;
 	b=2*a;
 	c=b+x;
 	y=c+8;
 	printf("%d",y);
}
C#
using System;
namespace a
{
    class Program
    {
        static void Main()
        {
            int a, b;
            a = int.Parse(Console.ReadLine());
            Console.WriteLine("{0}",2*a*a+a+8);
        }
    }
}
Python
a=int(a)
print(2*a*a+a+8)

1003: 两个整数的四则运算

C
void solve()
{
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d ",a+b);
	printf("%d ",a-b);
	printf("%d ",a*b);
	printf("%d ",a/b);
	printf("%d ",a%b);
}
C#
using System;
namespace a
{
    class Program
    {
        static void Main()
        {
            int a, b;
            string s = Console.ReadLine();
            string[] t = s.Split(' ');
            a = int.Parse(t[0]);
            b = int.Parse(t[1]);
            Console.WriteLine("{0} {1} {2} {3} {4}",a+b,a-b,a*b,a/b,a%b);
        }
    }
}
Python
m, n = map(int, input().split())
print(m+n ,m-n ,m*n ,int(m/n) ,m%n)

1004: 三位数的数位分离

C
void solve()
{
	int a,b,c,d,e;
	scanf("%d",&a);
	b=a/100;
	c=a-b*100;
	d=c/10;
	e=c-d*10;
	printf("%d ",e);
	printf("%d ",d);
	printf("%d\n",b);
} 
C#
using System;
namespace std
{
    class Program
    {
        static void Main()
        {
            int a;
            string s = Console.ReadLine();
            a = int.Parse(s);
            Console.WriteLine("{0} {1} {2}", a % 10, a / 10 % 10, a / 100);
        }
    }
}
Python
m=int(input())
print(m%10)
m//=10
print(m%10)
m//=10
print(m)

1005: 整数幂

C
void solve()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	printf("%-9d%-9d%-9d\n",a,a*a,a*a*a);
	printf("%-9d%-9d%-9d\n",b,b*b,b*b*b );
	printf("%-9d%-9d%-9d\n",c,c*c,c*c*c);
}
C#
using System;
namespace std
{
    class Program
    {
        static void Main()
        {
            int a, b, c;
            string s = Console.ReadLine();
            string[] t = s.Split(' ');
            a = int.Parse(t[0]);
            b = int.Parse(t[1]);
            c = int.Parse(t[2]);
            Console.WriteLine("{0,-8} {1,-8} {2,-8}", a, a * a, a * a * a);
            Console.WriteLine("{0,-8} {1,-8} {2,-8}", b, b * b, b * b * b);
            Console.WriteLine("{0,-8} {1,-8} {2,-8}", c, c * c, c * c * c);
        }
    }
}
Python
a, b, c = map(int, input().split())
print('{:<9}{:<9}{:<9}'.format(a,a**2,a**3))
print('{:<9}{:<9}{:<9}'.format(b,b**2,b**3))
print('{:<9}{:<9}{:<9}'.format(c,c**2,c**3))

1006: 求等差数列的和

C
void solve()
 {
 	int a,b,c,n,s; 
 	scanf("%d%d%d",&a,&b,&c);
 	n=(b-a)/c+1;
 	s=a*n+n*(n-1)/2*c; 
 	printf("%d",s);
 }
Python

用了for循环模拟

a, b, c = map(int, input().split())
m=0
for i in range(a,b+1,c):
    m+=i
print(m)

1007: 鸡兔同笼

C
void solve()
{
	int m,n,chicken,rabbit;
	scanf("%d%d",&m,&n);
	rabbit=(n-m*2)/2;
	chicken=m-rabbit;
	printf("%d %d",chicken,rabbit);
}
Python
a, b= map(int, input().split())
rabbit=(b-a*2)/2
print(int(a-rabbit) ,int(rabbit))

1008: 美元和人民币

C
void solve()
{
	float a;
	scanf("%f",&a);
	printf("%.2f",a*6.5573);
 } 
Python
a= int(input())
a*=6.5573
print('%.2f'%a)

1009: 求平均分

C
void solve()
{
	double a,b,c;
	scanf("%lf%lf%lf",&a,&b,&c);
	printf("%.2f",(a+b+c)/3);
}
Python
a,b,c=map(int,input().split())
a=(a+b+c)/3
print(format(a,'.2f'))

1010: 求圆的周长和面积

C
#define PI 3.14159
void solve()
{
	double c,s,r;
	scanf("%lf",&r);
	c=2*PI*r;
	s=PI*r*r;
	printf("%.2f %.2f",c,s);
}
Python
a=int(input())
C=2*3.14159*a
S=3.14159*a**2
print(format(C ,'.2f'),format(S,'.2f'))

1011: 圆柱体表面积

C
#define PI 3.14159
void solve()
{
	double a,b;
	scanf("%lf%lf",&a,&b);
	printf("%.2f",2*PI*a*b+2*PI*a*a);
 } 
Python
a,b = map(float, input().split())
S=2*3.14159*a*b+2*3.14159*a**2
print(format(S,'.2f'))

1012: 求绝对值

C
void solve()
int main()
{
	double n;
	scanf("%lf",&n);
	if(n<0) n=-n;
	printf("%.2f",n);
}
Python
m=float(input())
m=abs(m)
print('%.2f'%m)

1013: 求两点间距离

C
void solve()
{
	double x1,x2,y1,y2,a,b,y;
	scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2); 
	a=(x2-x1)*(x2-x1);
	b=(y2-y1)*(y2-y1);
	y=sqrt(a+b);
	printf("%.2f",y);
}
Python
a,b,c,d=map(float,input().split())
ans=((a-c)**2+(b-d)**2)**0.5
print('%.2f'%ans)

1014: 求三角形的面积

C
void solve()
{
	double a,b,c,s,d;
	scanf("%lf%lf%lf", &a, &b, &c);
	s = (a + b + c)*(a + b - c)*(a + c - b)*(b + c - a);
	d = sqrt(s);
	printf("%.2f", d / 4);
}
Python
a,b,c=map(float,input().split())
p=(a+b+c)*0.5
ans=(p*(p-a)*(p-b)*(p-c))**0.5
print('%.2f'%ans)

1015: 二次方程的实根

C
void solve()
{
	double a, b, c, deerta,ac;
	scanf("%lf%lf%lf", &a, &b, &c);
	ac=4*a*c;
	deerta = sqrt(b*b-ac);
	printf("%7.2f", (-b + deerta) / (2 * a));
	printf("%7.2f", (-b - deerta) / (2 * a));
	}
Python
a,b,c=map(float,input().split())
p=b**2-4*a*c
ans1=(-1*b+p**0.5)/(2*a)
ans2=(-1*b-p**0.5)/(2*a)
print(format(ans1,'7.2f'),format(ans2,'6.2f'))

1016: 银行利率

C
void solve()
{
	int a;
	double b,c,T;
	T = 1.0225;
	scanf("%d%lf", &a, &b);
	c = pow(T, a);
	printf("%.6f", b*c);
}
Python
raw=input()
a,b=raw.split()
a=int(a)
b=float(b)
m=b*1.0225**a
print('%.6f'%m)

1017: 表面积和体积

C

这题就是纯手动列式子

void solve()
{
	int a, b, c, d, e;
	scanf("%d%d%d%d%d", &a, &b, &c, &d, &e);
	printf("%d %d", a*c * 2 + b * c * 2 + a * b * 2+d*(a-2*e)*8+d*(c-2*e)*8+d*(b-2*e)*8,
		a*b*c-(a-2*e)*(c-2*e)*d*2 - (a - 2 * e)*(b - 2 * e)*d * 2 - (b - 2 * e)*(c - 2 * e)*d * 2);
}

1018: 奇数偶数

C
常规方法
void solve()
{
	int n;
	scanf("%d",&n);
	if(n%2) printf("odd");
	else printf("even");
}
位运算
#include<stdio.h>
int n;
int main()
{
	scanf("%d",&n);
	if(n&1) printf("odd");
	else printf("even");
	return 0;
}
Python
a=int(input())
if(a%2):
    print('odd')
else:
    print('even')

1019: 公园门票

C
void solve()
{
	float a;
	scanf("%f", &a);
	if (a < 30)
	{
		printf("%.2f", 50 * a);
	}
	else
	{
		printf("%.2f", 50 * a - 2 * a);
	}
}
Python
a=int(input())
if(a>=30):
    print('%.2f'%(48*a))
else:
    print('%.2f'%(50*a))

1020: 两整数排序

C
void solve()
{
	int x, b;
	scanf("%d%d", &x, &b);
	if (x>b)
	{
		printf("%d %d", b, x);
	}
	else
	{
		printf("%d %d", x, b);
	}
}
Python
raw=input()
a,b=raw.split()
a=int(a)
b=int(b)
if(a<=b):
    print(a,b)
else:
    print(b,a)

1021: 三个整数的最大值

C
void solve()
{
	int x,y,z;
	scanf("%d%d%d",&x,&y,&z);
	if(x>y)
	{
		if(x>z)
		{
			printf("%d",x);
		}
		else
		{
			printf("%d",z);
		}
	} 
		else
		{
			if(y>z)
			{
				printf("%d",y);
			}
			else
			{
				printf("%d",z);
			}
		}
}
Python
raw=input()
a,b,c=raw.split()
a=int(a)
b=int(b)
c=int(c)
if(a>b):
    m=a
else:
    m=b
if(m<c):
    m=c
print(m)

1022: 三整数排序

C
void solve()
{
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	if (a > b&&b > c)
	{
		printf("%d %d %d", a, b, c);
	}
	if (a > c&&c > b)
	{
		printf("%d %d %d", a, c, b);
	}
	if (b > c&&c > a)
	{
		printf("%d %d %d", b, c, a);
	}
	if (b > a&&a > c)
	{
		printf("%d %d %d", b, a, c);
	}
	if (c > a&&a > b)
	{
		printf("%d %d %d", c, a, b);
	}
	if (c > b&&b > a)
	{
		printf("%d %d %d", c, b, a);
	}
}
Python
raw=input()
a,b,c=raw.split()
a=int(a)
b=int(b)
c=int(c)
if(a<b):
    a,b=b,a
if(a<c):
    a,c=c,a
if(b<c):
    b,c=c,b
print(a,b,c)

1023: 大小写转换

C
void solve()
{
	char ch;
	ch = getchar();
	if (ch >= 'a'&&ch <= 'z')
	{
		ch -= 32;
		printf("%c", ch);
	}
	else
	{
		printf("%c", ch);
	}
}

1024: 计算字母序号

C
void solve()
{
	int a;
	char ch;
		scanf("%c", &ch);
		if (ch >= 'a'&&ch <= 'z')
		{
			ch -= 96;
		}
		else 
		{
			ch -= 64;
		}
		a = ch;
	printf("%d", a);
}
Python
a=input()
if(ord(a)>=ord('a') and ord(a)<=ord('z')):
    print(ord(a)-96)
else:
    print(ord(a)-64)

1025: 最大字符

C
void solve()
{
	char a, b, c;
	scanf("%c %c %c", &a, &b, &c);
	if (a > b)
	{
		if (b > c)
		{
			printf("%c", a);
		}
		else
		{
			if (a > c)
			{
				printf("%c", a);
			}
			else
			{
				printf("%c", c);
			}
		}
	}
	else
	{
		if (b > c)
		{
			printf("%c", b);
		}
		else
		{
			printf("%c", c);
		}
	}
}
Python
a,b,c=map(str,input().split())
if(str(a)>=str(b)):
    if(str(a)>=str(c)):
        print(a)
    else:
        print(c)
else:
    if(str(b)>=str(c)):
        print(b)
    else:
        print(c)

1026: 字符类型判断

C
void solve()
{
	char a;
	scanf("%c", &a);
	if ('A' <= a && 'Z' >= a)
	{
		printf("upper");
	}
	else
	{
		if ('0' <= a && '9' >= a)
		{
			printf("digit");
		}
		else
		{
			if ('a' <= a && 'z' >= a)
			{
				printf("lower");
			}
			else
			{
				printf("other");
			}
		}
	}
}
Python
a=ord(input())
if(ord('A')<=a<=ord('Z')):
    print('upper')
elif(ord('a')<=a<=ord('z')):
    print('lower')
elif(ord('0')<=a<=ord('9')):
    print('digit')
else:
    print('other')

1027: 判断水仙花数

C
void solve()
{
	int a,m,n,t;
	scanf("%d", &a);
	m = a / 100;
	n = (a % 100) / 10;
	t = a % 10;
	if (a == m*m*m + n * n*n + t * t*t)
	{
		printf("yes");
	}
	else
	{
		printf("no");
	}
}
Python
a=input()
a=int(a)
t=(a%10)**3
t+=(a//10%10)**3
t+=(a//100)**3
if(t==a):
    print('yes')
else:
    print("no")

1028: I love 闰年!

void solve()
{
	int a,b,c;
	scanf("%d", &a);
	b = a % 4;
	c = a % 400;
	if (a%100 == 0)
	{
		if (c == 0)
		{
			printf("Yes");
		}
		else
		{
			printf("No");
		}
	}
	else
	{
		if (b == 0)
		{
			printf("Yes");
		}
		else
		{
			printf("No");
		}
	}
}
Python
a=int(input())
print('Yes') if a%4==0 and a%100!=0 or a%400==0 else print('No') 

1029: 三角形判定

C
void solve()
{
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	if (a + b > c&&a + c > b&&b + c > a)
	{
		printf("Yes");
	}
	else
	{
		printf("No");
	}
}
Python
a,b,c=map(int,input().split())
print('Yes') if a+b>c and b+c>a and a+c>b else print('No')

1030: 判断直角三角形

C
void solve()
{
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	if (a + b > c&&a + c > b&&b + c > a)
	{
		if (a*a == b * b + c * c || b * b == a * a + c * c || c * c == a * a + b * b)
		{
			printf("yes");
		}
		else
		{
			printf("no");
		}
	}
	else
	{
		printf("no");
	}
}
Python
a,b,c=map(int,input().split())
if(a+b>c and b+c>a and a+c>b):
    if(a**2+b**2==c**2 or b**2+c**2==a**2 or a**2+c**2==b**2):
        print('yes');
    else:
        print('no');
else:
    print("no");

1031: 判断点在第几象限

C
#include<stdio.h>
int main(void)
{
	int a, b;
	scanf("%d%d", &a, &b);
	if (a > 0)
	{
		if (b > 0)
		{
			printf("1");
		}
		else
		{
			printf("4");
		}
	}
	else
	{
		if (b > 0)
		{
			printf("2");
		}
		else
		{
			printf("3");
		}
	}
	return 0;
}
Python
a,b=map(int,input().split())
print('1') if a>0 and b>0 else print('2') if a<0 and b>0 else print('3') if b<0 and a<0 else print('4')

1032: 员工薪水

C
#include<stdio.h>
int main(void)
{
	float a;
	scanf("%f", &a);
	if (a <= 10000)
	{
		printf("%.2f", 1500 + a*0.05);
	}
	else
	{
		if (a <= 50000)
		{
			printf("%.2f", 2000 + (a - 10000)*0.03);
		}
		else
		{
				printf("%.2f", 3200 + (a - 50000)*0.02);
		}
	}
	return 0;
}
Python
a=int(input())
if(a<=10000):
   b=1500+a*0.05 
elif(a<=50000):
   b=2000+(a-10000)*0.03 
elif(a>=50000):
   b=3200+(a-50000)*0.02
print('%.2f'%b)

1033: 五级制成绩

C
#include<stdio.h>
int main(void)
{
	int a;
	scanf("%d", &a);
	if (a >= 60)
	{
		if (a >= 70)
		{
			if (a >= 80)
			{
				if (a >= 90)
				{
					printf("A");
				}
				else
				{
					printf("B");
				}
			}
			else
			{
				printf("C");
			}
		}
		else
		{
			printf("D");
		}
	}
	else
	{
		printf("E");
	}
	return 0;
}
Python
a=int(input())
print('A') if a>=90 else print('B') if a>=80 else print('C') if a>=70 else print('D') if a>=60 else print('E')

1034: 夏季促销

C
#include<stdio.h>
int main(void)
{
	float a;
	scanf("%f", &a);
	if (a >= 500)
	{
		if (a >= 1000)
		{
			if (a >= 3000)
			{
				if (a >= 5000)
				{
					printf("%.2f", a*0.8);
				}
				else
				{
					printf("%.2f", a*0.85);
				}
			}
			else
			{
				printf("%.2f", a*0.9);
			}
		}
		else
		{
			printf("%.2f", a*0.95);
		}
	}
	else
	{
		printf("%.2f", a);
	}
	return 0;
}

1035: 分段函数求值

C
#include<stdio.h>
#include<math.h>
int main(void)
{
	int x, y;
	scanf("%d", &x);
	if (x >= -2)
	{
		if (x >= 3)
		{
			printf("%d", 3 * x + 4);
		}
		else
		{
			y = abs(3 * x + 2);
			printf("%d", 5 - y);
		}
	}
	else
	{
		printf("%d", 7 - 2 * x);
	}
	return 0;
}

1036: 某年某月有多少天

C
#include<stdio.h>
#include<math.h>
int main(void)
{
	int a,b;
	scanf("%d%d", &a,&b);
	if (b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12)
	{
		printf("31");
	}
	else
	{
		if (b == 2)
		{
			if (a % 100 == 0)
			{
				if (a % 400 == 0)
				{
					printf("29");
				}
				else
				{
					printf("28");
				}
			}
			else
			{
				if (a % 4 == 0)
				{
					printf("29");
				}
				else
				{
					printf("28");
				}
			}
		}
		else
		{
			printf("30");
		}
	}
	return 0;
}

1037: 四则运算

C
#include<stdio.h>
#include<math.h>
int main(void)
{
	double a, b,d;
	char c;
	scanf("%lf %c %lf", &a, &c, &b);
	if (c == '+')
	{
		printf("%.2f",a+b);
	}
	else
	{
		if (c == '-')
		{
			printf("%.2f", a - b);
		}
		else
		{
			if (c == '*')
			{
				printf("%.2f", a*b);
			}
			else
			{
				if (c == '/'&&(int)b !=0)
				{
					printf("%.2f", a / b);
				}
				else
				{
					printf("Wrong input");
				}
			}
		}
	}
	return 0;
}

1038: 绝对值最大

C
#include<stdio.h>
#include<math.h>
int main(void)
{
	int a, b, c, m;
	scanf("%d%d%d", &a, &b, &c);
	if (abs(a) > abs(b))
	{
		m = a;
	}
	else
	{
		if (abs(a) != abs(b))
		{
			m = b;
		}
		
	}
	if (abs(m) > abs(c))
	{
		printf("%d", m);
	}
	else
	{
		if (abs(m) != abs(c))
		{
			m = c;
			printf("%d", m);
		}
		else
		{
			if (m > 0)
			{
				printf("%d", m);
			}
			else
			{
				if (c > 0)
				{
					printf("%d", c);
				}
				else
				{
					printf("%d", m);
				}
			}
		}
	}
	return 0;
}

1039: n个数求和

C
#include<stdio.h>
int main()
{
	int i, x, n, num = 0;
	scanf("%d/n", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &x);
		num += x;
	}
	printf("%d", num);
	return 0;
}

1040: 数列求和1

C
**#include<stdio.h>
int main()
{
	int a,d;
	double c,b;
	scanf("%d",&a);
	b=1;
	for(d=1;d<=a;d=d+1)
	{
	  c=c+1/b;
	  b=b+2;
	}
	printf("%.2f",c);
	return 0;
}
Python
n=int(input())
m=0
for i in range(1,2*n,2):
    m+=1/i
print('%.2f'%m)

1041: 数列求和2

C
#include<stdio.h>
int main()
{
	int a,d;
	double c,b;
	scanf("%d",&a);
	b=1;
	for(d=1;d<=a;d=d+1)
	{
	  c=c+1/b;
	  if(b>0)
	  b=b+2;
	  else
	  b=b-2;
	  b=b*(-1);
	}
	printf("%.2f",c);
	return 0;
}

1042: 数列求和3

C
#include<stdio.h>
int main()
{
	int a, d,e;
	double c, b;
	scanf("%d", &a);
	b = 1;
	e=1;
	for (d = 1; d <= a; d = d + 1)
	{
		c = c + e / b;
		e=e+1;
		if (b > 0)
		{
			b = b + 2;
		}
		else
		{
			b = b - 2;
		}
		b = b * (-1);
	}
	printf("%.3f", c);
	return 0;
}

1043: 最大值

C
#include<stdio.h>
int main()
{
	int a, b, c, d, i, e;
	scanf("%d\n", &a);
	b = 1;
	e = 0;
	for (i = 1; i <= a; i++)
	{
		scanf("%d", &c);
		if(e == 0)
		{
		    e =e + 1;
		    d = c;
		}
		if (c > d)
		{
			d = c;
		}
	}
	printf("%d", d);
	return 0;
}

1044: 不及格率

C
#include<stdio.h>
int main()
{
	int a,i;
	double b,n;
	scanf("%lf", &n);
	b = 0;
	for (i = 1; i <= n; i++)
	{
		scanf("%d", &a);
		if (a < 60)
			b += 1;
	}
	printf("%.2f", b / n);
	return 0;
}

1045: 数值统计

C
#include<stdio.h>
int main()
{
	int n,i,t,a,b,c;
	scanf("%d", &n);
	a = 0;
	b = 0;
	c = 0;
	for (i = 1; i <= n; i++)
	{
		scanf("%d", &t);
		if (t < 0)
			a += 1;
		else if (t == 0)
			b += 1;
		else if (t > 0)
			c += 1;
	}
	printf("%d %d %d", a, b, c);
	return 0;
}

1046: 奇数的乘积

C
#include<stdio.h>
int main()
{
	int n, a, b, i;
	scanf("%d", &n);
	b = 1;
	for (i = 1; i <= n; i++)
	{
		scanf("%d", &a);
		if(a%2==1)
		b = b * a;
	}
	printf("%d", b);
	return 0;
}

1047: 对数表

C
#include<stdio.h>
#include<math.h>
int main()
{
	int i,a;
	double m, n;
	scanf("%lf %lf", &m, &n);
	a = n - m;
	for (i = 0; i <= a; i++)
	{
		printf("%4.0f%8.4f\n", m, log(m));
		m += 1;
	}
	return 0;
}

1048: 阶乘表

C
#include<stdio.h>
#include<math.h>
int main()
{
	long long int a,i,n,b,I;
	scanf("%lld", &n);
	a = 1;
	b = 1;
	for (i = 1; i <= n; i++)
	{
		if (a <= n)
		{
			I = 1;
			while (I <= a)
			{
				b = b * I;
				I += 1;
			}
			a += 1;
		}
		printf("%-4lld%-20lld\n", i, b);
			b = 1;
	}
	return 0;
}

1049: 平方和与立方和

C
#include<stdio.h>
#include<math.h>
int main()
{
	long long int a, b, c, m, n, t, f, i;
	scanf("%lld%lld", &m, &n);
	c = n - m;
	t = 0;
	f = 0;
	for (i = m; i <= n; i++)
	{
		if (i % 2 == 0)
			t = t + i * i;
		else
			f = f + i * i*i;
	}
	printf("%lld %lld", t, f);
	return 0;
}

1050: 阶乘的累加和

C
#include<stdio.h>
#include<math.h>
int main()
{
	int n, a, i,t,b;
	scanf("%d", &n);
	t = 0;
	for (i = 1; i <= n; i++)
	{
		a = 1;
		for (b = 1; b <= i; b++)
		{
			a = a * b;
		}
		t = t + a;
	}
	printf("%d", t);
	return 0;
}

1051: 平方根的和

C
#include<stdio.h>
#include<math.h>
int main()
{
	double t,a;
	int n,i;
	a = 0;
	scanf("%lf%d", &t, &n);
	for (i = 1; i <= n; i++)
	{
		a = a + t;
		t = sqrt(t);
	}
	printf("%.2f", a);
}

1052: 数列求和4

C
#include<stdio.h>
int main()
{
	int n,i, a,t,b;
	scanf("%d%d", &n, &a);
	t = 0;
	b = a;
	for (i = 1; i <= n; i++)
	{
		t = t + a;
		a =b + a * 10;
	}
	printf("%d", t);
}

1053: 正弦函数

C
#include<stdio.h>
#include<math.h>
int main()
{
	int i,I;
	double a,b,x, t;
	scanf("%lf", &x);
	a = 1;
	t = 0;
	b = x;
	for (i = 1; i <= 10; i++)
	{
		t = t + b;
		a = a + 2;
		b = 1;
		for (I = 1; I <= a; I++)
		{
			b = b * I;
		}
		b = pow(-1,i) * pow(x, a) / b;
	}
	printf("%.3f", t);
	return 0;
}

1054: 猴子吃桃

C
#include<stdio.h>
#include<math.h>
int main()
{
	int n, i, t;
	scanf("%d", &n);
	t = 1;
	for (i = 1; i <= n-1; i++)
	{
		t = (t + 1) * 2;
	}
	printf("%d", t);
}

1055: 兔子繁殖问题

C

fabinacci数列

#include <stdio.h>
int main() 
{
	int n,f1=1,f2=1;
	scanf("%d", &n);
	for (int i = 2; i < n; i ++)
	{
		f1 = f1 + f2;
		i++;
		f2 = f1 + f2;
	}
	if(n%2 != 0)
		printf("%d\n", f1);
	else
		printf("%d\n", f2);
	return 0;
}

1056: 整存零取

C
#include<stdio.h>
#include<math.h>
int main()
{
	double x, a, i, I;
	scanf("%lf", &x);
	a=0;
	for (i = 1; i <= 5; i++)
	{
		a += 1000;
		a = a / (1 + x*12);
		I = 1;
	}
	printf("%.2f", a);
}

1057: 素数判定

C
#include<stdio.h>
int main()
{
    int a=0,n,i;
    scanf("%d",&n);
    for(i=2;i<n;i++)
    {
        if(n%i==0)
        {
            a++;
        }
    }
    if(a==0&&n!=1)
    {
        printf("Yes");
    }
    else{
        printf("No");
    }
    return 0;

}

1058: 求解不等式

C
#include<stdio.h>
#include<math.h>
int main()
{
	long long int n,a;
	int m,i,b;
	scanf("%lld", &n);
	a = 1;
	b = 0;
	for (m = 1; n > a; m++)
	{
		b = 1;
		for (i = 1; i <= m; i++)
		{
			b += b * i;
		}
		a += b;
	}
	m = m - 1;
	printf("m<=%d",m );
	return 0;
}

1059: 最高分

C
#include<stdio.h>
int main()
{
	int a, b, c, i;
	a = 1;
	b = 0;
	for (i = 0; a >= i; i = 0)
	{
		scanf("%d", &a);
		if (a > b)
			b = a;
	}
	printf("%d", b);
}

1060: 逆序数字

C
#include<stdio.h>
#include<math.h>
int main()
{
	int a,i,n,b,t;
	scanf("%d", &a);
	b = 1;
	for (n = 1; b != 0; n++)
	{
		b = a / pow(10,n);
	}
	n = n - 1;
	for (i = 1; i <= n; i++)
	{
		t = a % 10;
		a = a / 10;
		printf("%d ", t);
	}
	return 0;
}

1061: 顺序输出各位数字

C
#include<stdio.h>
#include<math.h>
int main()
{
	int a,i,n,b,t,I,N,A;
	scanf("%d", &a);
	b = 1;
	for (n = 1; b != 0; n++)
	{
		b = a / pow(10,n);
	}
	n = n - 1;
	N = n;
	A = a;
	for (I=1;I<=N;I++)
	{
		t = 0;
		a = A;
		for (i = 1; i <= n; i++)
		{
			t = a % 10;
			a = a / 10;
		}
		n = n - 1;
			printf("%d ", t);
	}
	return 0;
}

1062: 最大公约数

C
#include<stdio.h>
int main()
{
	int m, n,t,a,b;
	scanf("%d%d", &m, &n);
	for (t=1; t != 0;)
	{
		if (m / n == 0)
		{
			if (n / m == 0)
			{
				printf("%d", m);
				t = 0;
			}
			else
			{
				b = m;
				m = n;
				n = b;
				//printf("第二");
			}
		}
		else
		{
			if (m%n == 0)
			{
				printf("%d", n);
				t = 0;
			}
			else
			{
				m = m % n;
				//printf("第四");
			}
		}
	}
}

1063: 最大公约与最小公倍

C
#include<stdio.h>
int main()
{
	long long int m, n,t,a,b,c;
	scanf("%lld%lld", &m, &n);
	c = m * n;
	for (t=1; t != 0;)
	{
		if (m / n == 0)
		{
			if (n / m == 0)
			{
				printf("%lld %lld", m,m);
				t = 0;
			}
			else
			{
				b = m;
				m = n;
				n = b;
				//printf("第二");
			}
		}
		else
		{
			if (m%n == 0)
			{
				printf("%lld %lld", n,c/n);
				t = 0;
			}
			else
			{
				m = m % n;
				//printf("第四");
			}
			
		}
	}
}

1064: 加密字符

C
#include<stdio.h>
int main()
{
	char ch;
	ch = 'a';
	while (ch!='@')
	{
		ch = getchar();
		if (ch >= 'A'&&ch <= 'Z')
			ch += 32;
		if (ch == 'z')
		ch = 'a';
		else if(ch >= 'a'&&ch <= 'y')
		ch += 1;
		if(ch!='@')
		putchar(ch);
	}
}

1065: 统计数字字符的个数

C
#include<stdio.h>
int main()
{
	char a;
	int t = 0;
	a = 1;
	while (a != 10)
	{
		a = getchar();
		if (a >= '0'&&a <= '9')
		{
			t++;
		}
	}
	printf("%d", t);
}

1066: 字符分类统计

C
#include<stdio.h>
int main()
{
	char a;
	int t=0,d=0,o=0;
	a = 1;
	while (a != 10)
	{
		a = getchar();
		if (a >= '0'&&a <= '9')
			t++;
		else if (a >= 'a'&&a <= 'z' || a >= 'A'&&a <= 'Z')
			d++;
		else
			o++;
	}
	printf("letter:%d\n", d);
	printf("digit:%d\n", t);
	printf("other:%d\n", o-1);
}

1067: 有问题的里程表

C
#include<stdio.h>
int main()
{
	int a, i,t=0;
	scanf("%d", &a);
	for (i = 1; i <= a; i++)
	{
		if (i == 4 || i % 10 == 4 || i % 100 == 4||i/10==4||i/100==4||(i-(i/100)*100)/10==4)
			t+=1;
	}
	printf("%d", a - t);
}

1068: 二进制数

C
#include<stdio.h>
#include<math.h>
int main()
{
	int a, b,a1, i,t;
	scanf("%d\n", &a);
	a1 = a;
	t = 0;
	for (i = 1; i <= a; i++)
	{
		scanf("%d", &b);
		a1 -= 1;
		if(b!=0)
		t += pow(2, a1);
	}
	printf("%d", t);
}

1069: 向Z同学学习

C
#include<stdio.h>
main()
{
	int M, K,i,t=0;
	scanf("%d%d", &M, &K);
	for (i = 0; M != 0; i++)
	{
		M -= 1;
		t++;
		if (t == K)
			t=0,M += 1;
	}
	printf("%d", i);
}

1070: 小汽车的位置

C
#include<stdio.h>
main()
{
	int time=0, command=0, x=0,y=0,t,i=0,x1=1,y1=1,time0=0,c;
	while (command != 3)
	{
		i++;
		time0 = time;
		scanf("%d%d", &time, &command);
		if (i % 2)//奇数,南北
		{
			if (command == 1)//左转
			{
				t = (time-time0) * 10;
				if (y1 > 0)//北
				{
					y += t;
					x1 = -1;
				}
				else//南
				{
					y -= t;
					x1 = 1;
				}

			}
			else if (command == 2)//右转
			{
				t = (time-time0) * 10;
				if (y1 > 0)//北
				{
					y += t;
					x1 = 1;
				}
				else//南
				{
					y -= t;
					x1 = -1;
				}
			}
			else
			{
				t = (time - time0) * 10;
				if (y1 > 0)
					y += t;
				else
					y -= t;
			}
		}
		else//偶数,东西
		{
			if (command == 1)//left
			{
				t = (time-time0) * 10;
				if (x1 > 0)//东
				{
					x += t;
					y1 = 1;
				}
				else
				{
					x -= t;
					y1 = -1;
				}
			}
			else if (command == 2)//right
			{
				t = (time-time0) * 10;
				if (x1 > 0)//东
				{
					x += t;
					y1 = -1;
				}
				else
				{
					x -= t;
					y1 = 1;
				}
			}
			else
			{
				t = (time - time0) * 10;
				if (x1 > 0)
					x += t;
				else
					x -= t;
			}
		}
		t = 0;
	}
	printf("%d %d", x, y);
}

1071: 分解质因子

C
#include <stdio.h>
int main()
{
    int i,j,k,a;
    scanf("%d",&a);
    for(i=2;i<=a;i++)
    {
        if(a%i==0)
        {
            printf("%d ",i);
            a=a/i;
            i=1;
        }
    }
    return 0;
}

1072: 青蛙爬井

C
#include<stdio.h>
main()
{
	int h,u,d,t=0,i;
	scanf("%d%d%d",&h,&u,&d);
	for(i=1;t<=h;i++)
	{
		t+=u;
		if(t>=h)
		{
		printf("%d",i);
		return 0;
		}
		else
		t-=d;
	}
} 

1073: 级数求和

C
#include<stdio.h>
main()
{
	double sn=0,i;
	int k;
	scanf("%d",&k);
	for(i=1;sn<=k;i++)
	{
		sn+=1/i;
	}
	printf("%d",(int)i-1);
} 

1074: 百钱买百鸡

C
#include<stdio.h>
int main()
{
	int n,a,b=0,c;
	scanf("%d",&n);
	a=n/7;
	int i;
	for(i=0;i<=a;i++)
	{
		if((n-7*i)%4==0)
		{
   			printf("%4d%4d%4d\n",i,(n-7*i)/4,6*i+3*(n-7*i)/4);
   			b=1;
   		}
		else
			continue;
	}
    if(b==0)
    		printf("No Answer");
}

1075: 聚餐人数统计

C
#include<stdio.h>
main()
{
	int n,cost,i,j,k,m=0;
	scanf("%d%d",&n,&cost);
	for(i=0;3*i<=cost;i++)
	for(j=0;2*j<=cost;j++)
	{
		k=n-i-j;
		if(3*i+2*j+k==cost)
		m=1,printf("%d %d %d\n",i,j,k);
		
	}
	if(m==0)
	printf("No answer");
} 

1076: 三位数求解

C
#include<stdio.h>
main()
{
	int x, y, z, n,t=0;
	scanf("%d", &n);
	for (x = 1; x <= 9; x++)
		for (y = 1; y <= 9; y++)
			for (z = 0; z <= 9; z++)
			{
				if (x * 100 + y * 10 + z + y * 100 + z * 10 + z == n)
					t = 1, printf("%4d%4d%4d", x, y, z);
			}
	if (t == 0)
		printf("No Answer");
	return 0;
}

1077: 字符串加密

C
#include<stdio.h>
int main()
{
	char ch;
	int k,i;
	scanf("%d",&k);
	scanf("%c",&ch);
	k=k%26;
	//printf("%d",k);
	for(;ch=getchar(),ch!=10;)
	{
		if('a'<=ch&&ch<='z')
			if((ch+k)<='z')
			printf("%c",ch+k);
			else
			printf("%c",ch-26+k);
		else if('A'<=ch&&ch<='Z')
			if((ch+k)<='Z')
			printf("%c",ch+k);
			else
			printf("%c",ch-26+k);
		else
		putchar(ch);
	}
}

1078: a+b(多实例测试1)

C
#include<stdio.h>
void abhe(a, b)
{
	int t;
	t = a + b;
	printf("%d\n", t);
}
int main()
{
	int a,i,b,n;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%d%d", &a, &b);
		abhe(a, b);
	}
}

1079: a+b(多实例测试2)

C
#include"stdio.h" 
int main()
{
	int a, b;
	while (scanf("%d%d", &a, &b) != EOF)
	{
		printf("%d\n", a + b);
	}
	return 0;
}

1080: a+b(多实例测试3)

C
#include"stdio.h" 

int main() 

{ 

	int a,b; 

	while(scanf("%d%d",&a,&b), a!=0||b!=0) 

	printf("%d\n",a+b); 

	return 0; 

} 	

1081: n个数求和 (多实例测试)

C
#include<stdio.h>
main()
{
	int n1,i1;
	scanf("%d", &n1);
	for (i1 = 1; i1 <= n1; i1++)
	{
		int i,n,t=0,a;
		scanf("%d", &n);
		for (i = 1; i <= n; i++)
		{
			scanf("%d", &a);
			t += a;

		}
		printf("%d\n", t);
	}
}

1082: 敲7(多实例测试)

C
#include<stdio.h>
main()
{
	int i, a, t,n;
	scanf("%d", &a);
	for (t = 1; t <= a; t++)
	{
		scanf("%d", &n);
		for (i = 1; i <= n; i++)
		{
			if (i % 10 == 7 || i / 10 % 10 == 7 || i / 100 % 10 == 7 || i / 1000 % 10 == 7 || i % 7 == 0)
				printf("%d ", i);
		}
		printf("\n");
	}
}

1083: 数值统计(多实例测试)

C
#include<stdio.h>
int main()
{
	int n, i, a, b, c;
	double t;
	while (scanf("%d", &n), n != 0)
	{
		a = 0;
		b = 0;
		c = 0;
		for (i = 1; i <= n; i++)
		{
			scanf("%lf", &t);
			if (t < 0)
				a += 1;
			else if (t == 0)
				b += 1;
			else if (t > 0)
				c += 1;
		}
		printf("%d %d %d\n", a, b, c);
	}
}

1084: 计算两点间的距离(多实例测试)

C
#include<math.h>
#include<stdio.h>
int main()
{
	double x1, x2, y1, y2, a, b, y;
	while (scanf("%lf", &x1) != EOF)
	{
		scanf(" %lf %lf %lf", &y1, &x2, &y2);
		a = (x2 - x1)*(x2 - x1);
		b = (y2 - y1)*(y2 - y1);
		y = sqrt(a + b);
		printf("%.2f\n", y);
	}
	return 0;
}

1085: 求奇数的乘积(多实例测试)

C
#include<math.h>
#include<stdio.h>
int main()
{
	int n, i,t=1,a;
	while (scanf("%d", &n)!= EOF)
	{
		t = 1;
		for (i = 1; i <= n; i++)
		{
			scanf("%d", &a);
			if (a % 2 == 0)
				;
			else
				t *= a;
		}
		printf("%d\n", t);
	}
}

1086: ASCII码排序(多实例测试)

C
#include<math.h>
#include<stdio.h>
int main()
{
	char a, b, c,t;
	while (scanf(" %c%c%c", &a, &b, &c)!=EOF)
	{
		if(a>b)
		{
			t = a;
			a = b;
			b = t;
		}
		if (a > c)
		{
			t = a;
			a = c;
			c = t;
		}
		if (b > c)
		{
			t = b;
			b = c;
			c = t;
		}
		printf("%c %c %c\n", a, b, c);
	}
}

1087: 获取出生日期(多实例测试)

C
#include<stdio.h>
#include<math.h>
int main()
{
	long long int t;
	int n,i,a,b,c;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%lld", &t);
		t = t % 1000000000000;
		t = t / 10000;
		a = t / 10000;
		b = (t % 10000)/100;
		c = t % 100;
		if(b>=10)
		if(c>=10)
			printf("%d-%d-%d\n",a,b,c);
		else
			printf("%d-%d-0%d\n", a, b, c);
		else
			if(c>=10)
				printf("%d-0%d-%d\n", a, b, c);
			else
				printf("%d-0%d-0%d\n", a, b, c);
	}
}

1088: 手机短号 (多实例)

C
#include<stdio.h>
#include<math.h>
int main()
{
	long long int a;
	int n,i;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%lld", &a);
		a = a % 100000;
		printf("%lld\n", 600000 + a);
	}
}

1089: 阶乘的最高位

C
#include<stdio.h>
int maxi(long long int(n))
{
	if (n / 1000000 == 0)
	{
		return n;
	}

	else
	{
		n /= 10;
		maxi(n);
	}
}
int main()
{
	long long n=1,i;
	int t;
	scanf("%d", &t);
	for (i = 1; i <= t; i++)
	{
		n *= i;
		n=maxi(n);
	}
	while (n / 10 != 0)
		n /= 10;
	printf("%d", n);
}

1090: 整数幂(多实例测试)

C
#include<stdio.h>
#include<math.h>
main()
{
	int i, n, b,t,a,a1;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%d",&a);
		a1 = a;
		scanf("%d",&b);
		for (t = 1; t < b; t++)
		{
			a *= a1;
			if (a >= 1000000)
				a %= 1000;
		}
		printf("%d\n", a % 1000);
	}
}

1091: 童年生活二三事(多实例测试)

C
#include<stdio.h>
main()
{
    long long int a, b=1, n = 1,t=0;
	while (scanf("%lld", &a),a != 0)
	{
		for (int i = 1; i <= a; i++)
		{
			if (a == 1)
			{
				n = 1;
				//printf("roung");
				break;
			}
			b = n;
			//printf("b=%d", b);
			n += t;
			//printf("n=%d", n);
			t = b;
			//printf("t=%d\n", t);
		}
		printf("%lld\n", n);
		b = 1;
		n = 1;
		t = 0;
	}
}

1092: 素数表(函数专题)

C
#include<stdio.h>
#include<math.h>
int prime(int n)
{
	int i;
	for (i = 2; i <= sqrt(n); i++)
	{
		if (n%i == 0)
			return 0;
	}
	return 1;
}
int main()
{
	int n,t,a,b;
	scanf("%d", &a);
	scanf("%d", &b);
	for (a; a <= b; a++)
	{
		if (a <= 1)
			continue;
		if (a == 2)
		{
			printf("2 ");
			continue;
		}
		t = prime(a);
		if (t == 1)
			printf("%d ", a);
		
	}
}

1093: 验证哥德巴赫猜想(函数专题)

C
#include<stdio.h>
#include<math.h>
int prime(int n)
{
	int i;
	for (i = 2; i <= sqrt(n); i++)
	{
		if (n%i == 0)
			return 0;
	}
	return 1;
}
int main()
{
	int M,t,a,b;
	scanf("%d", &M);
	for (int i=2; i <=M/2 ; i++)
	{
		t = prime(i);
		if (t == 1)
		{
			a = M - i;
			b = prime(a);
			if (b == 1)
			{
				printf("%d %d\n", i, a);
			}
		}
	}
}

1094: 统计元音(函数专题)

C
#include<stdio.h>
int vowel(char ch)
{
	if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' || ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U')
		return 1;
	else
		return 0;
}
int main()
{
	int a,t=0;
	char ch;
	
	do
	{
		ch = getchar();
		a = vowel(ch);
		t += a;
	} while (ch != 10);
		printf("%d", t);
}

1095: 时间间隔(多实例测试)

C
#include<stdio.h>
int h, m, s;
int HmsToS(int h, int m, int s)
{
	s = s + h * 3600 + m * 60;
	return s;
}
void PrintTime(int s)
{
	m = s / 60;
	h = m / 60;
	m = m % 60;
	s = s % 60;
	printf("%02d:%02d:%02d\n", h, m, s);
}
int main()
{
	int a, b, c, t,t1;
	while (scanf("%d:%d:%d", &a, &b, &c)!=EOF)
	{
		t = HmsToS(a, b, c);
		scanf("%d:%d:%d", &a, &b, &c);
		t1 = HmsToS(a, b, c);
		PrintTime(t1 - t);
	}
}

1096: 水仙花数(函数专题,多实例)

C
#include<stdio.h>
int a, b, c, d, t,m,n,e=0;
int flower(t)
{
	a = t / 100;
	c = t % 10;
	b = (t % 100) / 10;
	if (t == a * a*a + b * b*b + c * c*c)
		return 1;
	else
		return 0;
}
int main()
{
	int i;
	while (scanf("%d%d", &m, &n) != EOF)
	{
		while (m <= n)
		{
			d = flower(m);
			if (d == 1)
				e=1,printf("%d ", m);
			m++;
		}
		if (e == 0)
			printf("no");
		printf("\n");
		e = 0;
	}
}

1097: 计算平均成绩(函数专题)

C
#include<stdio.h>
double t,p,m,n;
char point(a)
{
	switch (a)
	{
	case 'A':t = 95; break;
	case 'B':t = 85; break;
	case 'C':t = 75; break;
	case 'D':t = 65; break;
	case 'E':t = 40; break;
	}
	return t;
}
int main()
{
	char a;
		m = 0;
		while (scanf("%c", &a) != EOF)
		{
			p = point(a);
			m += p;
			n = 1;
			while (scanf("%c", &a), a != 10)
			{
				p = point(a);
				m += p;
				n++;
			}
			printf("%.1f\n", m / n);
		}
}

1098: 复合函数求值(函数专题)

C
#include<stdio.h>
#include<math.h>
double funF(double x)
{
	return fabs(x - 3) + fabs(x + 1);
}
double funG(double x)
{
	return x * x - 3 * x;
}
int main()
{
	double x;
	scanf("%lf", &x);
	x = funG(x);
	x = funF(x);
	printf("%.2f", x);
}

1099: 角谷猜想(多实例测试)

C
#include<stdio.h>
int t=0,n;
int jishu(n)
{
	n = 3 * n + 1;
	return n;
}
int oushu(n)
{
	n = n / 2;
	return n;
}
int main()
{
	while (scanf("%d",&n)!=EOF)
	{
		t = 0;
		while (n != 1)
		{
			if (n <= 0)
				break;
			if (n % 2 == 0)
			{
				n = oushu(n);
				t++;
			}
			else
			{
				n = jishu(n);
				t++;
			}
		}
		printf("%d\n", t);
	}
	return 0;
}

1100: 求组合数(函数专题)

C
#include<stdio.h>
long long int t=1,a,b;
long fact(long n)
{
	t = 1;
	for (int i = 1; i <= n; i++)
		t *= i;
	return t;
}
int m, k;
int main()
{
	scanf("%d%d", &m, &k);
	a = fact(m - k);
	b = fact(k);
	t = fact(m);
	printf("%lld", t / (a*b));
}

HAUTOJ 1100-----1150

后续↑

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值