【C语言简单例题】

题目一:将一个正整数分解质因数。例如:输入90,打印出90=2 * 3 * 3 * 5。

#include<stdio.h>
void main()
{
	int i, n;
	printf("输入需要分解的整数:");
	scanf("%d", &n);
	for (i = 2; i <= n; i++) {
		while (n%i==0){
			printf("%d", i);
			n /= i;
			if (n != 1)printf("*");
		}
	}
}

题目二:输出9*9乘法口诀。

解析:

Created with Raphaël 2.3.0 开始 int a=1,b=1 a = 1 a <= 9 b= 1 b<= 9 b++ printf("\n"); a++ 结束 yes no yes no
#include<stdio.h>
void main()
{
	int i, n;
	printf("输入需要分解的整数:");
	scanf("%d", &n);
	for (i = 2; i <= n; i++) {
		while (n%i==0){
			printf("%d", i);
			n /= i;
			if (n != 1)printf("*");
		}
	}
}

#include<stdio.h>
void main()
{
int a=1,b=1;
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++)
printf(“%d*%d=%d\t”,a,b,a*b);
printf(“\n”);
}
}

题目三:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#include<stdio.h>
 
int main()
{
	//有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    int i,j,k;
    printf("\n");
    for(i=1;i<5;i++) { // 以下为三重循环,百位
        for(j=1;j<5;j++) {//十位
            for (k=1;k<5;k++) {   // 个位
                if (i!=k&&i!=j&&j!=k) {//确保i、j、k三位互不相同 
                    printf("%d%d%d     ",i,j,k);
			
                }
            }
        }
    }
	 printf("\n");
}

题目四:三种循环方法计算1-2+3-4+5-6+…-100的值

方法一:while循环

#include <stdio.h>

int main(){
    int sum = 0;//定义计算结果变量sum
    int i = 1;//定义循环数字变量i
    int flag = 1;//定义符号状态变量flag

   while(i<=100){
      i++;
      sum+=i*flag;
      flag=-flag;
   }
   printf("sum=%d/n",sum);
}

方法二:do-while循环

#include <stdio.h>

int main(){
    int sum = 0;//定义计算结果变量sum
    int i = 1;//定义循环数字变量i
    int flag = 1;//定义符号状态变量flag

   do{
      sum+=i*flag;
      i++;
      flag=-flag;
   }while(i<=100);
   printf("sum=%d/n",sum);
}

方法三:for循环

#include <stdio.h>

int main(){
    int sum = 0;//定义计算结果变量sum
    int i = 1;//定义循环数字变量i
    int flag = 1;//定义符号状态变量flag

   for(i=1,flag=2;i<=100,flag<=100;i+2,flag+=2){
     sum+=(i-flag);
   }
   printf("sum=%d/n",sum);
   return 0;
}

题五:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

方法一:暴力法

#include <stdio.h>
 
int main()
{
	int i;
	int j;
	int k;
 
	for(i = 0; i < 1000; i++)//我们要判断的数
	{
		for(j = 0; j < 1000; j++)//判断i+100是否是j的平方数
		{
			if(i + 100 == j * j)
			{
				for(k = j; k < 1000; k++)//判断i+168是否是k的平方
				{
					if(i + 100 + 168 == k * k)
					{
						printf("%d\n",i);
					}
				}
			}
		}
	}
 
	return 0;
}

方法二:利用平方差公式分析取值范围

#include <stdio.h>
 
int main (void)
{
    int  i, j, m, n, x;
    for (i = 1; i < 168 / 2 + 1; i++)
    {
        if (168 % i == 0)
        {
            j = 168 / i;
            if ( i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0)
            {
                m = (i + j) / 2;
                n = (i - j) / 2;
                x = n * n - 100;
                printf ("%d + 100 = %d * %d\n", x, n, n);
                printf ("%d + 268 = %d * %d\n", x, m, m);
            }
        }
    }
    return 0;
}

方法三:极限法判断范围

#include<stdio.h>
#include<math.h>

// 判断该数值是否符合: x+100=m^2
double testDataM(double data) {
	// 求得: m^2
	double mPow = data*data;
	// 获取x的值
	double value = mPow - 100;
	return value;
}

// 判断该数值是否符合:x+100+186=n^2
int testDataN(double data) {
	// 获取:n^2
	double mPow = data + 100 + 168;
	// 对n 开方
	double value = sqrt(mPow);
	// 判断 n开方后是否是整数
	if (value == (int) value) {
		return 1;
	}
	return 0;
}
	
	
int main(){
	// 确定 m的值范围
	for (int i = 11; i <= 83; i++) {
		// 得到 x的值
		double x = testDataM(i);
		// 判断 n是否为整数
		if (testDataN(x)) {
			printf("这个数是:%.2f\n" , x);
		}
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌霄醉酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值