废话少说。
传送门
P-0033
只要片段就行了
double function(int n){
return n==1?1:1/(1+function(n-1));
}
P-0034
同样也是代码片段
int function(int a,int b){
int count=0;
int n=3,x,y,z,f,t;
if(a>=b){
t=a;
a=b;
b=t; //确保b是大的那个数
}
for(int i=a;i<=b;i++){
t=i;
if(i>999){
n=4;
}
switch(n){
case 3:
x=i/100;
y=(i/10)%10;
z=i%10;
if(i==x*x*x+y*y*y+z*z*z){
count++;
}
break;
case 4:
x=i/1000;
y=(i/100)%10;
z=(i/10)%10;
f=i%10;
if(i==x*x*x*x+y*y*y*y+z*z*z*z+f*f*f*f){
count++;
}
break;
default:break;
}
}
return count;
}
P-0035
#include<stdio.h>
#include<math.h>
int main(){
int n;
scanf("%d",&n);
int nums[1000];
int flag,k=0,t;
if(n&1!=0){//不是偶数
return 0;
}else{
//生成质数表
for(int i=2;i<n;i++){
flag=1;
for(int j=2;j<=sqrt((double)i);j++){
if(i%j==0){
flag=0;
}
}
if(flag){
nums[k++]=i;//k最终代表k+1个质数
}
}
//分解偶数
for(int i=k;i>=(double)k/2;i--){
t=n-nums[i];
for(int j=0;j<=(double)k;j++){
if(t==nums[j]){
printf("%d %d",nums[j],nums[i]);
goto a;
}
}
}
a:;
}
return 0;
}
P-0044
//xdoj0044.c
#include<stdio.h>
#include<math.h>
void judge(int n){
int flag=1;
for(int i=2;i<=sqrt((double)n);i++){
if(n%i==0){
flag=0;
}
}
if(flag){
printf("yes");
}else{
printf("%d",n);
}
}
int main(){
int n;
scanf("%d",&n);
int f1=1,f2=1,t;
if(n==2){
printf("%d",1);
}else{
//生成第n个fibonacci数
for(int i=2;i<n;i++){
t=f1+f2;
f1=f2;
f2=t;
}
n=f2;//此时n变为fibonacci数
judge(n);
}
return 0;
}
P-0055
#include<stdio.h>
#include<math.h>//fabs()里面要浮点数
int main(){
int n,max;
scanf("%d",&n);
int t[30];
if(n>=2&&n<=30){
for(int i=0;i<n;i++){
scanf("%d",&t[i]);
}
max=fabs((double)t[0]-t[1]);//假设波动最大的是前俩项差
for(int i=0; i <n-1;i++){
if(fabs((double)t[i+1]-t[i])>max){
max=fabs((double)t[i + 1]-t[i]);
}
}
printf("%d",max);
}
return 0;
}
P-0057
#include<stdio.h>
int fib(int n){
int f0=7,f1=11,t;
if(n==0){
return f0;
}else if(n==1){
return f1;
}else{
for(int i=1;i<n;i++){
t=f0+f1;
f0=f1;
f1=t;
}
return f1;
}
}
int main(){
printf("%d",fib(2));
return 0;
}
P-0065
#include<stdio.h>
int calculate(int n){
int sum=0;
while(n!=0){
sum+=n%10;
n/=10;
}
return sum;
}
int main(){
long int n;
int ans=0;
scanf("%ld",&n);
ans=calculate(n);
while(ans>=10){
ans=calculate(ans);
}
printf("%d",ans);
return 0;
}
P-0159
#include<stdio.h>
float Mul(int m){
float ans=1;
for(int i=m;i>1;i--){
ans*=i;
}
return ans;
}
int main(){
int m,n;
scanf("%d%d",&m,&n);
if(m>n){
printf("%.2f",Mul(m)/Mul(n)/Mul(m-n));
}
return 0;
}
P-0205
#include<stdio.h>
int main(){
char a;
int n;
scanf("%c",&a);
scanf("%d",&n);
for(int i=0;i<n;i++){
for(int j=n-i;j>1;j--){
printf(" ");
}
for(int k=0;k<=i;k++){
printf("%c ",a);
}
printf("\n");
}
return 0;
}
P-0215
#include<stdio.h>
#include<string.h>
int main(){
char str[100];
scanf("%s",str);
for(int i=strlen(str)-1;i>=0;i--){
printf("%c",str[i]);
}
return 0;
}
P-0219
这个题目没说如果不是素数会怎样,不过我猜了个NO,没想到对了
#include<stdio.h>
#include<math.h>
int main(){
unsigned int n;
int flag=1;
scanf("%d",&n);
if(n>=2){
for(int i=2;i<=sqrt((double)n);i++){
if(n%i==0){
flag=0;
}
}
if(flag){
printf("YES");
}else{
printf("NO");
}
}
return 0;
}
P-0221
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main(){
char s[100];
scanf("%s",s);
int len=strlen(s);
int c1=0,c2=0;
for(int i=0;i<len;i++){
if(isalpha(s[i])){
c1++;
}else if(isdigit(s[i])){
c2++;
}
}
printf("%d,%d",c1,c2);
return 0;
}
P-0227
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main(){
int count=0;
char s[100];
scanf("%s",s);
int len=strlen(s);
for(int i=0;i<len;i++){
if(isalpha(s[i])){
count++;
}
}
printf("%d",count);
return 0;
}
P-0228
#include<stdio.h>
#include<string.h>
int main(){
char s[100];
scanf("%s",s);
int len=strlen(s);
for(int i=0;i<len;i+=2){
printf("%c",s[i]);
}
return 0;
}
P-0229
#include<stdio.h>
#include<string.h>
int main(){
char a[100];
char b[100];
gets(a);
gets(b);
printf("%s%s",a,b);
return 0;
}
P-0230
#include<stdio.h>
#include<math.h>
int fun(int y[],int x){
int flag=1,k=0;
for(int i=2;i<=x;i++){
flag=1;
for(int j=2;j<=sqrt((double)i);j++){
if(i%j==0){
flag=0;
}
}
if(flag){
y[k++]=i;
}
}
return k;
}
int main(){
int x;
int y[1000];
scanf("%d",&x);
printf("%d\n",fun(y,x));
for(int i=0;i<fun(y,x);i++){
printf("%d ",y[i]);
}
return 0;
}
P-0240
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
char out[100]={'\0'};
int i=0;
if(n>=0){
while(n!=0){
out[i++]=(n%10)+48;
n/=10;
}
for(int j=i-1;j>=0;j--){
printf("%c",out[j]);
}
}else{
n=-1*n;
while(n!=0){
out[i++]=(n%10)+48;
n/=10;
}
printf("-");
for(int j=i-1;j>=0;j--){
printf("%c",out[j]);
}
}
return 0;
}
P-0241
#include<stdio.h>
int main(){
int a;
scanf("%x",&a);
printf("%d",a);
return 0;
}
P-0289
这题,题目点不开
最后
感兴趣的可以关注我的微信公众号,第一时间收到动态