我们要求找出具有下列性质数的个数(包含输入的自然数n)。先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它的左边加上一个自然数,但该自然数不能超过原数最高位数字的一半; 3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止。
#include<stdio.h> int sum=0; int f(int num) { for(int i=1;i<=num/2;i++) f(i); sum++; return sum; } void main() { int x,s; scanf("%d",&x); if(x>0&&x<10) s=f(x); else if(x>=10&&x<100)//判断数的范围,求取最高位数字 s=f(x/10); else if(x>=100&&x<1000) //判断数的范围,求取最高位数字 s=f(x/100); else s=f(x/1000); printf("\n%d\n",s); }
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
#include<stdio.h> int main() { int x,y,i,N,z,a=1; scanf("%d",&N); for(x=0;x<N;x++) //控制行 { i=1+a*(a-1)/2; a++; z=i; //将i储存起来留给下个for循环使用 printf("%d ",z);//输出每一行的第一个数字 for(y=0,i=x+2;y<N-x-1;y++,i++) //控制每行的数量 { z=z+i; printf("%d ",z);//输出每一行的第二到最后一个数字 } printf("\n"); } return 0; }