赞
踩
int main( )
{
int i,j,count=0;
for(i=1;i<100;i++){
for(j=2;j<i;j++){
if(i%j==0)break;
}
if(i==j){
count++;
printf("%d ",i);
if(count%5==0)printf("\n");
}
}
}
完数:等于其因子(不含本身)之和,如6=1+2+3
int main( )
{
int i,j,sum;
for(i=1;i<1000;i++){
sum=0;
for(j=1;j<i;j++){
if(i%j==0)sum+=j;
}
if(sum==i)printf("%d ",sum);
}
}
int main( )
{
int a,b,c,i;
for(i=100;i<=999;i++){
a=i%10;
b=i/10%10;
c=i/100;
if(a*a*a+b*b*b+c*c*c==i)
printf("%d ",i);
}
}
int main( )
{
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++){
sn=sn+hn*2;
hn/=2;
}
printf("共经过%f米,第10次反弹%f米\n",sn,hn);
}
int main( )
{
int dm,zm,xm;
for(dm=0;dm<34;dm++){
for(zm=0;zm<51;zm++){
xm=100-dm-zm;
if(xm%2==0&&dm*3+zm*2+xm/2==100)//小马为偶数个才能实现"两匹小马驮一旦"
printf("大马有%d,中马有%d,小马有%d\n",dm,zm,xm);
}
}
}
int main( )
{
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++)
printf("%d*%d=%-4d",i,j,i*j);
printf("\n");
}
}
int main( )
{
float e=1,m=1;
long i=1,n=1;
while(m>=0.001){
m=1./n;
e+=m;
n*=++i;
}
printf("%f",e);
}
int main( )
{
int a,i,n,m=0;
long sum=0;
printf("请输入a和n:\n");
scanf("%d%d",&a,&n);
for(i=0;i<n;i++){
m=a+m*10;
sum+=m;
}
printf("%ld",sum);
}
s=2+22+222+2222
题目略
int main( )
{
int number;
for(number=14;;number++)
if(number%2==1&&number%3==2
&&number%5==4&&number%6==5&&number%7==0){
printf("%d",number);//119
break;
}
}
int main( )
{
int x,y;
for(x=1;x<=35;x++){
for(y=1;y<=35;y++)
if((x+y)==35&&2*x+4*y==94){
printf("鸡有%d只,兔有%d只\n",x,y);
break;
}
}
}
遇到这种题,简单的方法直接使用穷举就完了。
int main( )
{
int gj,mj,xj;
for(gj=0;gj<=20;gj++){
for(mj=0;mj<=33;mj++){
xj=100-gj-mj;
if(gj*5+mj*3+xj/3==100&&xj%3==0)
printf("公鸡%d母鸡%d小鸡%d\n",gj,mj,xj);
}
}
}
int main( )
{
int x=1,y=9;
while(y>0){
x=2*(x+1);
y--;
}
printf("%d\n",x);//1534
}
法一:(btw,这是一行4个)
int main( )
{
int f1=1,f2=1,i,count;
for(i=1;i<=10;i++){
printf("%5d%5d",f1,f2);
count++;
f1=f1+f2;
f2=f1+f2;
if(count%2==0)printf("\n");
}
}
法二:(这是一行五个)
int fib(int n){
if(n==1||n==2)return 1;
else return fib(n-1)+fib(n-2);
}
int main( )
{
int n;
for(n=1;n<=20;n++){
printf("%5d",fib(n));
if(n%5==0)printf("\n");
}
}
int main( )
{
int num;
scanf("%d",&num);
int a,b,num1,count=0;
num1=num;
while(num1>0){
a=num1%10;
b=b*10+a;
num1/=10;
count++;
}
printf("有%d位数,逆序过后是%d\n",count,b);
}
int main( )
{
int m,n,r;
scanf("%d%d",&m,&n);
int t,x;
if(m<n){
t=m;m=n;n=t;
}
r=m%n;
x=m*n;
while(r!=0){
m=n;n=r;r=m%n;
}
printf("最小公倍数是%d,最大公约数是%d\n",x/n,n);
}
int main( ) { int num,i; scanf("%d",&num); printf("%d=1*",num); for(i=2;i<num;i++){ while(i!=num){ if(num%i==0){ printf("%d*",i); num/=i; } else break; } } printf("%d",num); }
int gcd(int m,int n){ int t; if(m>n){ t=m;m=n;n=t; } int r=m%n; while(r!=0){ m=n; n=r; r=m%n; } return n; } int main( ) { int m,n; scanf("%d%d",&m,&n); if(gcd(m,n)>1)printf("两数不是互质的\n"); else printf("两数是互质的\n"); }
int main( )
{
int n;
scanf("%d",&n);
int i,j,k=0,sum=1;
for(i=2;i<=n;i++){
k=i;
for(j=2;j<=i;j++){
k=k*10+i;
}
sum+=k;
}
printf("%d",sum);
}
#include<time.h>
int main( )
{
int a[10],max,i;
srand(time(0));//设置随机数种子
for(i=0;i<10;i++){
a[i]=rand()%100;
printf("%d ",a[i]);
}
max=a[0];
for(i=1;i<10;i++){
if(max<a[i])max=a[i];
}
printf("\n最大值是%d\n",max);
}
int main( ) { int a[10]={3,9,1,56,12,7,5,78,89,16}; int i,min,j,t; for(i=0;i<9;i++){ min=i; for(j=i+1;j<10;j++){ if(a[min]>a[j])min=j; } if(min!=i){ t=a[i];a[i]=a[min];a[min]=t; } } for(i=0;i<10;i++) printf("%d ",a[i]); }
int main( )
{
int a[10]={3,9,1,56,12,7,5,78,89,16};
int i,j,t;
for(i=0;i<10-1;i++){
for(j=0;j<10-1-i;j++){
if(a[j]>a[j+1]){
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
int main( ) { int a[10]={0,11,22,44,55,66},len=6; int i,loc,data; printf("请输入插入位置和数据:"); scanf("%d%d",&loc,&data); if(len<10){ for(i=len;i>loc;i--) a[i]=a[i-1];//元素后移 a[loc]=data; len++; } else printf("存储单元不足\n"); for(i=0;i<len;i++){ printf("%d ",a[i]); } }
int main( )
{
int a[11]={1,3,9,11,13,15,18,19,21,23};
int i,j,num;
printf("请输入你要插入的数字:");
scanf("%d",&num);
for(i=0;i<10;i++)
if(num<a[i])break;
for(j=10;j>i;j--)
a[j]=a[j-1];
a[i]=num;
for(i=0;i<11;i++)
printf("%d ",a[i]);
}
int main( )
{
int a[10]={0,11,22,100,33,44,55,66},len=8;
int i,loc=3;
if(loc<len){
for(i=loc;i<len;i++)
a[i]=a[i+1];
len--;
}
else
printf("查无此数\n");
for(i=0;i<len;i++)
printf("%d ",a[i]);
}
法一:
int main( ) { int a[10]={0,11,22,100,33,44,55,66},len=8; int i,num,sign; scanf("%d",&num); for(i=0;i<10;i++){ if(num==a[i]){ sign=i; break; } } for(i=sign;i<len;i++) a[i]=a[i+1]; len--; for(i=0;i<len;i++) printf("%d ",a[i]); }
法二:
int main(){
int a[10],x,*p,*q;
printf("请输入十个整数:");
for(p=a;p<a+10;p++)scanf("%d",p);
printf("请输入要删除的数字:");
scanf("%d",&x);
for(p=q=a;p<a+10;p++)
if(x!=*p)*q++=*p;
if(q==p)printf("查无此数\n");
else{
for(p=a;p<q;)printf("%d ",*p++);
}
}
int main( )
{
int a[10]={0,11,22,33,44,55,66,77,88,99},key;
int l=0,h=9;//在a[l]~a[h]范围内查找
int m;
scanf("%d",&key);//输入要查找的值
while(l<=h){
m=(l+h)/2;
if(key==a[m])break;
else if(key<a[m])h=m-1;
else if(key>a[m])l=m+1;
}
if(l<=h)printf("找到,在第%d个\n",m+1);
else printf("not found\n");
}
#include<string.h> int main( ) { char a[5][11],buf[11]; int i,j,min; for(i=0;i<5;i++)gets(a[i]); for(i=0;i<5-1;i++){ min=i; for(j=i+1;j<5;j++){ if(strcmp(a[j],a[min])<0)min=j; } if(min!=i){ strcpy(buf,a[i]); strcpy(a[i],a[min]); strcpy(a[min],buf); } } for(i=0;i<5;i++)puts(a[i]); }
int main( ) { char c[]="0123456789ABCDEF";//余数对应字符 char result[33];//存放结果 int dec,base,i,r;//转换的十进制整数及要转换的进制 for(i=0;i<32;i++)result[i]=' '; result[32]='\0'; printf("请输入要转换的数据 进制:\n"); scanf("%d %d",&dec,&base); i=31;//逆序存放的下标 while(dec>0){ r=dec%base; result[i--]=c[r]; dec/=base; } puts(result); }
int main( ) { long x1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}, x2[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; long result[3][3]; long sum=0; int i,j,k; for(i=0;i<3;i++) for(j=0;j<3;j++){ sum=0; for(k=0;k<4;k++) sum+=x1[i][k]*x2[k][j]; result[i][j]=sum; } for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%ld ",result[i][j]); printf("\n"); } }
#include<string.h>
int main( )
{
char s1[100]="12345ABC",s2[100];
int i,j,len=strlen(s1);
for(i=len-1,j=0;i>=0;i--)
s2[j++]=s1[i];
puts(s2);
}
int main( )
{
char s[100];
gets(s);
int i,j,len=strlen(s);
for(i=0,j=len-1;i<j;i++,j--){
if(s[i]!=s[j])break;
}
if(i>=j)printf("yes");
else printf("no");
}
int main( )
{
char s1[100],s2[100];
gets(s1);gets(s2);
int i=0,j=0;
while(s1[i]!='\0')i++;
while(s2[j]!='\0'){
s1[i+j]=s2[j];
j++;
}
s1[i+j]='\0';
puts(s1);
}
int main( )
{
char s[100],t[120];
gets(s);
int i=0,k=0;
while(s[i]!='\0'){
t[k++]=s[i++];
if(i%3==0){
t[k]=' ';k++;continue;
}
}
puts(t);
}
int main( ) { int j,k=0; char s[60],t[100],*p; p=s; gets(p); while(*p){ for(j=1;j<=3&&*p;j++,p++,k++) t[k]=*p; if(j==4){ t[k]=' '; k++; } } t[k]='\0'; puts(t); }
int fun(int n){
if(n==1)return 1;
else return n*fun(n-1);
}
int main( )
{
int n;
scanf("%d",&n);
printf("%d",fun(n));
}
int main( ) { char s1[100]={"youarebeautiful"},s2[100],s3[50];//s3暂存字符串 printf("请输入子字符串:"); gets(s2); int i,j=0,n; printf("请输入要插入的位置:"); scanf("%d",&n); i=n; while(s1[i]!='\0'){ s3[j]=s1[i];//原数组n后面的部分保存到s3里 j++;i++; } s3[j]='\0'; j=0; while(s2[j]!='\0'){ s1[n]=s2[j]; //s1被赋值要插入的字符串,n为插入位置 j++;n++; } s1[n]='\0'; strcat(s1,s3); puts(s1); }
int main( ) { char s1[100],s2[100]; int i,j,t,count=0; scanf("%s%s",s1,s2);//输入母串和子串 i=0; while(s1[i]!='\0'){ t=i;j=0; while(s2[j]!='\0'&&s1[t]==s2[j]){ t++;j++; } if(s2[j]=='\0'){ count++; i=t; } else i++; } printf("出现了%d次",count); }
int main( )
{
int i,j,k=0,a[4][4]={0};
for(j=0;j<4;j++){
for(i=3;i>=j;i--){
a[i][j]=++k;
}
}
for(i=0;i<4;i++){
for(j=0;j<=i;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
}
int main( )
{
int a[10]={99,12,34,65,23,90,1,56,45,27},i,j,k;
for(i=1;i<10;i++){
k=a[i];
j=i-1;
while(j>=0&&a[j]>k){
a[j+1]=a[j];
j--;
}
a[j+1]=k;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
非递归:
int main( ) { int i,j,a[10][10]; for(i=0;i<10;i++){ a[i][i]=a[i][0]=1; } for(i=2;i<10;i++){ for(j=1;j<i;j++){ a[i][j]=a[i-1][j]+a[i-1][j-1]; } } for(i=0;i<10;i++){ for(j=0;j<=i;j++) printf("%5d",a[i][j]); printf("\n"); } }
递归法:
int fun(int m,int n){
if(n==0||m==n)
return 1;
else
return fun(m-1,n)+fun(m-1,n-1);
}
int main( )
{
int i,j,n=10;
for(i=0;i<n;i++){
for(j=0;j<=i;j++)
printf("%d ",fun(i,j));
printf("\n");
}
}
#include<stdio.h>
int main(){
long sum=4,s=4;
int i;
for(i=2;i<=8;i++){
printf("%ld",sum);
if(i<=2)
s*=7;
else
s*=8;
sum+=s;
}
printf("\nsum=%ld",sum);
}
#include<stdio.h> int main(){ int M,N; int a[100]={0},i,k=0,d=0,m=0; printf("请输入猴子数N和报数M:\n"); scanf("%d%d",&N,&M); for(i=0;i<N;i++)a[i]=1; while(d!=N){ for(i=0;i<N;i++){ k+=a[i]; if(k!=M)continue; m=i; a[i]=0; k=0; d++; } } printf("留下来的是原来的%d号",m+1); }
#include<stdio.h>
#include<math.h>
int main(){
int i,x,y;
for(i=1;i<100000;i++){
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
printf("%d ",i);
}
}
#include<stdio.h>
int main(){
int i,t;
float sum=0,a=2,b=1;
for(i=1;i<=20;i++){
sum=sum+a/b;
t=a;a=a+b;b=t;
}
printf("%f",sum);
}
#include<stdio.h> int main(){ char str[100]={0}; int key,i=0; scanf("%d",&key); getchar(); gets(str); while(str[i]){ if(str[i]>='A'&&str[i]<='Z') str[i]=(str[i]-'A'+key)%26+'A'; else if(str[i]>='a'&&str[i]<='z') str[i]=(str[i]-'a'+key)%26+'a'; i++; } printf("%s",str); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。