编程入门

将一个数所有数取出来

原理:

1.判断几位数 l
2.定义一个长度为l的一维数组
3.利用for循环将其储存在数组中
4.然后调用函数

例题

(一) :给出一个不多于5位的整数,要求

1、求出它是几位数
2、分别输出每一位数字
3、按逆序输出各位数字,例如原数为321,应输出123

#include<stdio.h>
int main()
{
 int num,temp,item=10000,size,a[5],i,j,N;
 scanf("%d",&num);
 //判断几位数
 //原理就是从最大数除 
 for(i=5;i>0;i--,item/=10)
 {
  if((num/item)!=0)
  {
   size=i;
   break;
  }
 }
 //取数 
 for(i=0;i<size;i++)
 {
  a[i]=num%10;
  num/=10;
 }
 printf("%d\n",size);
 for(i=size-1;i>0;i--)
 printf("%d ",a[i]);
 printf("%d\n",a[0]);
 for(i=0;i<size-1;i++)
 printf("%d",a[i]);
 printf("%d\n",a[size-1]);
 return 0;
}

(二)输入两个正整数m和n,求其最大公约数和最小公倍数。

原理

1.先判断两个数的大小 将a置为最小数
2.for从大到小循环
3判断两数对他取余为0结束
4.最小公倍数两数相乘除以最大公约数

#include<stdio.h>
int gcd(int m,int n)
{
 int i;
 if(m>n)
 m=n;
 for(i=n;i>0;i--)
 {
  if((m%i==0)&&(n%i==0))
  break;
 }
 return i;
 } 
int main()
{
 int a,b;
 scanf("%d%d",&a,&b);
 printf("%d %d",gcd(a,b),a*b/gcd(a,b));
 return 0;
}

(三)【阶乘求和】求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

原理:

1.定义一个函数求每一个数的阶乘
2.在主函数中通过循环调用该函数
3.将sum初始值置为0
4.循环加

#include<stdio.h>
unsigned long long  fun(int n)
{
 return n<=1? 1 : n*fun(n-1);
}
main()
{
 int n,i=1;
 long long sigma=0;
 scanf("%d",&n);
 while(i<=n)
 {
  sigma+=fun(i);
  i++;
 }
 printf("%.0lld\n",sigma);
}
完数的判断

一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数。

原理:

1.议一个注意点他是所有因子相加
2.个位数的规律
3.一半

#include<stdio.h>
int main()
{
  double N,sum=0;
 int factor[100],x=0;
 scanf("%lf",&N); 
 for(int i=6;i<=N;i++)
 {
  if(i%10==6||i%10==8)//所有完数个位数都是6或8
  {
   for(int j=1;j<=i/2;j++)
   {
    if(i%j==0)
    {
     factor[x]=j;
     x++;
     sum=sum+j; 
    }
    if(sum==i)
    {
     printf("%d its factors are ",i);
     for(int k=0;k<x;k++)
     {
      printf("%d ",factor[k]);
     }
     printf("\n");
    }
   }
   sum=0;
    x=0;
   } 
  } 
   return 0;
}

迭代法求平方根

原理:

用迭代法求 平方根
1.式为: X[n+1]=(X[n]+a/X[n])/2
2.首先把函数化解成线性代数方程√x=a等价于y=x²-a。此时函数的零点(根)就是方程的解了。
在这里插入图片描述
3.图中x的值就是函数的解。Xn是任意一个取值。那条红色的线就是函数的切线。你可以看出X<Xn+1<Xn将Xn+1赋值给Xn,for循环。你可以看出Xn不断接近解。

在这里插入图片描述
Xn+1的函数方程为,对他求导。可以看出当f(x)Xf’’(x)>0时,Xn+1的导数小于零。而g(x)=0这个x是零点,由不动点原理知Xn+1不断趋近于x。
在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main() {
 double x1,x2,a;
 int i;
 scanf("%lf",&a);
 x2=1.0;
 while(1) {
  x1=x2;
  x2=(x1+a/x1)/2.0;
  if(fabs(x1-x2)<0.00001) {
   printf("%.3f",x2);
   break;
  }
 }
 return 0;
}

在这里插入图片描述

过程解释

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值