A素数判断 节省时间,可只遍历到sqrt(m)
#include<stdio.h>
#include<math.h>
int main()
{
int t;
scanf("%d",&t);
while(t--){
int m,flag=1;
scanf("%d",&m);
for(int i=2;i<=sqrt(m);i++){
if(m%i==0){
flag=0;
break;
}
}
if(flag)printf("YES\n");
else printf("NO\n");
}
return 0;
}
B 水仙花数(模拟题)根据题意做 多组
#include<stdio.h>
#include<math.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n!=0){
int a,b,c;
a=n%10;
b=(n/10)%10;
c=n/100;
if(pow(a,3)+pow(b,3)+pow(c,3)==n){
// printf("YES\n");
puts("YES");
}else{
printf("NO\n");
}
}
return 0;
}
sprintf的应用 将整数转换成字符数组
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n;
char s[4];
while(~scanf("%d",&n)&&n!=0){
int sum=0;
sprintf(s,"%d",n);
for(int i=0;s[i]!='\0';i++){
sum+=pow(s[i]-'0',3);
}
if(sum==n){
puts("YES");
}else puts("NO");
}
return 0;
}
C 求1+1/2!… 数据类型的转换
#include<stdio.h>
int main()
{
int t,n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
float sum=0;
for(int i=1;i<=n;i++){
int temp=1;
for(int j=1;j<=i;j++){
temp*=j;
}
sum+=1.0/float(temp);
}
printf("%.4f\n",sum);
}
return 0;
}
D 简单题~ 多组输入 排序(冒泡、选择、二分、快排) C++入门
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n,k;
int s[2005];
while(cin>>n>>k){
memset(s,0,sizeof(s));
for(int i=0;i<n;i++){
cin>>s[i];
}
sort(s,s+n);
// for(int i=0;i<n-1;i++){
// int t;
// for(int j=0;j<n-i-1;j++){
// if(s[j]>s[j+1]){
// t=s[j];
// s[j]=s[j+1];
// s[j+1]=t;
// }
// }
// }
// for(int i=0;i<n;i++){
// cout<<s[i]<<" ";
// }
cout<<s[k-1]<<endl;
}
return 0;
}
E 字符串、熟悉使用string函数库,strlen、strcmp、strcpy…
#include<stdio.h>
#include<string.h>
int main()
{
int t;
scanf("%d",&t);
while(t--){
char s[200];
scanf("%s",s);
int l,sum=0;
l=strlen(s);
for(int i=0;i<l;i++){
if(s[i]-'0'>=0&&s[i]-'0'<=9){
sum++;
}
}
printf("%d\n",sum);
}
return 0;
}
F 与B题类似,做法多样,可用字符数组,也可直接数学运算
#include<stdio.h>
#include<string.h>
int main()
{
int t;
scanf("%d\n",&t);
while(t--){
char s[25];
scanf("%s",s);
int number,l,sum=0,i=0;
l=strlen(s);
number=l;
if(s[i]=='-'){
number--;
i++;
}
for( ;i<l;i++){
// printf("%c ",s[i]);
sum+=s[i]-'0';
}
printf("number=%d,sum=%d.\n",number,sum);
}
return 0;
}
G 求x 的n 次幂
#include<stdio.h>
#include<math.h>
int main()
{
int t;
scanf("%d",&t);
while(t--){
double x,sum;
int n;
scanf("%lf %d",&x,&n);
sum=pow(x,n);
printf("%.2lf\n",sum);
}
return 0;
}
H 阶乘!
#include<stdio.h>
int main()
{
int n;
while(~scanf("%d",&n)){
for(int i=1;i<=n;i++){
int sum=1;
for(int j=1;j<=i;j++){
sum*=j;
}
printf("%d!=%d\n",i,sum);
}
}
return 0;
}
I 求函数值 递归含义的理解
#include<stdio.h>
int f(int x){
if(x==1) return 10;
else return f(x-1)+2;
}
int main()
{
int x;
while(~scanf("%d",&x)){
printf("%d\n",f(x));
}
return 0;
}
J 陶陶摘苹果
#include<stdio.h>
int main()
{
int a[15];
int n,sum=0;
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
scanf("%d",&n);
for(int i=0;i<10;i++){
if(a[i]-30<=n)sum++;
}
printf("%d\n",sum);
return 0;
}
k Even Number ?
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,n;
cin>>t;
while(t--){
cin>>n;
if(n%2)puts("NO");
else puts("YES");
}
return 0;
}