题目入口
挺适合新手入门的,有小伙伴叫我帮忙刷题,惭愧花了两个小时只写了11道题,后面有时间会在更新的,有几个题懒得去查代码了,后面会一起放上来,想知道那道题的在下面留言并点赞,我会尽早放该题代码
A:水仙数
#include<stdio.h>
int main()
{
int m,n,k1,k2,k3,count;
while(scanf("%d %d",&m,&n)!=EOF)
{
for(count=0;m<=n;++m)
{
k1=m/100;
k2=(m-100*k1)/10;
k3=(m-100*k1-10*k2);
if(m==k1*k1*k1+k2*k2*k2+k3*k3*k3)
{
if(count!=0)
{
printf(" ");
}
printf("%d",m);
count++;
}
}
if(count==0)
printf("no\n");
else
printf("\n");
}
return 0;
}
B:素数判定
#include <iostream>
using namespace std;
//判定一个数是否为素数,是素数返回1,否则返回0
int check_prime_num(int arg)
{
if(arg<=0)return 0;
else if(arg==1) return 0;
else if(arg==2)return 1;
else
{
for(int j=2; j<arg; j++)
{
//取余等于0,说明除了1和本身外还有其他因数,说明他不是素数,直接返回零
if(arg%j==0) return 0;
}
return 1;
}
}
int main(void)
{
int x,y,temp,flag=0;
while(cin>>x>>y)
{
//c=0,y=0就退出
if(x==0&&y==0)break;
//判定在输入x,y之间的数后表达式结果为素数的个数
for(int i=x; i<=y; i++)
{
temp=i*i+i+41;
if(check_prime_num(temp)==1)
++flag;
}
//如果表达式结果素数的个数和输入的个数想等的话,就说明表达式结果都为素数
if(flag==(y-x+1))cout<<"OK"<<endl;
else cout<<"Sorry"<<endl;
//必须清零,供下一个循环使用
flag=0;
}
return 0;
}
C:进制转换
#include<stdio.h>
void binary(int, int);
int main()
{
int N, R;
while(scanf("%d %d", &N, &R)!=EOF)
{
if(N==0)
printf("%d",0);
else if(N<0)
{
printf("-");
N=-N;
}
binary(N, R);
printf("\n");
}
return 0;
}
void binary(int n, int r)
{
int m;
if(n==0)
return;
else
{
binary(n/r, r);
m=n%r;
if(m<10)
printf("%d", m);
else
printf("%c", 'A'+m-10);
}
}
D:人见人爱A^B
#include<cstdio>
int f(int a,int b)
{
int t=1;
while(b)
{
if(b%2!=0)
{
t=(t*a)%1000;
b--;
}
a=a*a%1000;
b/=2;
}
return t;
}
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)&&a&&b)
{
printf("%d\n",f(a,b));
}
}
E:三角形
#include <iostream>
using namespace std;
struct trig{
double a;
double b;
double c;
};
int main(){
int M;
while (cin >> M){
trig x[100];
for (int i = 0; i < M; i++){
cin >> x[i].a >> x[i].b >> x[i].c;
}
for (int i = 0; i < M; i++){
if (x[i].a + x[i].b>x[i].c && x[i].c + x[i].a>x[i].b && x[i].b + x[i].c > x[i].a)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}
return 1;
}
F:超级楼梯
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
int m;
cin>>m;
while (m--) {
scanf("%d",&n);
long long F[90];
F[1] = 1;
F[2] = 1;
for (int i = 3; i < 90; i++) {
F[i] = F[i - 1] + F[i - 2];
}
printf("%lld\n", F[n]);
}
return 0;
}
G:QAQ和台阶
#include<stdio.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
long long F[90];
F[1] = 1;
F[2] = 2;
F[3]=4;
for (int i = 4; i < 90; i++) {
F[i] = F[i - 1] + F[i - 2]+F[i-3];
}
printf("%lld\n", F[n]);
}
return 0;
}
H:自上而下
#include <iostream>
using namespace std;
const long maxsize=1008611+11;
long F[maxsize];
int main() {
// your code goes here
long n,m;
F[0]=1;
for(int i=1;i<=1008611;i++){
F[i]=2*i*F[i-1]%1008611;
}
cin>>n;
while(n--){
cin>>m;
cout<<F[m]<<endl;
}
return 0;
}
I:“你才智商低,你全家都智商低”
偷懒解法
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
while(n){
cout<<n/2<<endl;
cin>>n;
}
return 0;
}
写了java发现没提供java提交。。。
import java.util.Scanner;
public class Main{
public static int Water_max(int n){
//先把手上的空瓶子3个为一组分好
int k =0;
while(n>=3){
if(n %3==0){
k =k+ n/3;
n=n/3;
}
if(n % 3!=0){
k=k+n/3;
int t =n%3;
n= n/3 +t;
}
}
if(n==2){
k=k+1;
}
return k;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int num = sc.nextInt();
if(num !=0){
System.out.println( Water_max(num));
}
}
}
}
J:Lucky Number
#include <bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
int n;
int m;
cin>>n;
while(n--){
cin>>m;
if(m % 8 ==0){
cout<<"Lucky number!"<<endl;
continue;
}
long long summ=0,sum2=0;
while(m){
summ+=m%10;
sum2+=pow(m%10,2);
m/=10;
}
if(summ%8==0 || sum2%8==0)cout<<"Lucky number!"<<endl;
else cout<<"What a pity!"<<endl;
}
return 0;
}