1. 编写一个程序,找出被2,3,5整除时余数均为1的最小的10个自然数。
eg:
n%2==1&&n%3==1&&n%5==1(if的嵌套实际上就是且的关系)
#include<stdio.h>
int main()
{
int i;
int n=1;
while(i<=10)
{
if((n%2 ==1)&&(n%3==1)&&(n%5==1))
{
printf("n=%d\n",n);
i++;
}
n++;
}
return 0;
}
2. 求斐波那契数列前n项的和值
1 1 2 3 5 8 13 21 34 55 ...
前两项 1
从第三项开始 每一项,都是前两项之和
#include<stdio.h>
int main() {
int n, i;
int a = 0;
int b = 1;
int sum=1 ;
printf("请输入n的值: ");
scanf("%d", &n);
if(n<=1){
printf("前%d\n项和为:%d\n",n,sum);
}
for (i=2; i <= n; i++) {
int c= a + b;
sum=sum +c;
a = b;
b = c;
}
printf("前%d项的和为: %d\n", n, sum);
return 0;
}
3. 思考题:
编写程序,求a+aa+aaa+…+aa…a,其中a是一个数字。
例如:
3+33+333+3333+33333(此时n为5)。
要求a和n从键盘输入,
输出格式为 3+33+333+3333+33333=37035。"
a 3
n 5
#include<stdio.h>
int main(void)
{
int a,n,i;
int b=0,sum=0;
printf("输入a:");
scanf("%d",&a);
printf("输入n:");
scanf("%d\n",&n);
while(n--)
{
b=b*10+a;
sum=sum+b;
printf("%d+",b);
}
printf("\b=%d\n",sum);// /b是退格的意思
return 0;
}
如果想要某个算式执行到 n次,可以选择使用for(i=0;i<n;i++){ 循环体 }
或者while(n--)当n--一直有数值则为真,执行循环。