算法n的平方
① n的平方的简便算法
末尾为零的例如10*10,可以直接计算1*1,然后数一下剩余全部零的个数直接写在后面,就得到100。而像最后一个数为5的两位数,简便算法是这样的,以25的平方为例,个位上的数相乘得到25。然后十位上的数一个不变为2一个加一变成3,相乘就得到百位上的数6。25的平方就是625.其他的以此类推
② 算法:求一个正整数N的开方,要求不能用库函数sqrt(),结果的精度在0.001(牛顿迭代法)
算法推导过程,应该去看微积分方面的书,不是这里能写完的。
网络一下牛顿迭代法,会有些通俗一点的介绍。
程序就是用你的算法编的啊,应该没有疑问。
③ 如何算出N的平方,求算法,或计算机算法。
c++版:(代码)
#include <iostream>
using namespace std;
int main()
{
int n,x,y; //定义三个整数n,x,y
cout<<"请输入N值, N = "<<endl; //提示输入N值
cin>>n; //输入N值
x=n; //N值赋给x
y=x*x; //计算N的平方
cout<<"N的平方为:"<<y<<endl; //输出N的平方的值
return 0; //注意全部使用英文输入法,特别是标点符号
}
④ 1的平方一直加到N的平方的计算公式
1^2+2^2+3^2+……+n^2=n(n+1)(2n+1)/6
具体算法
利用立方差公式
n^3-(n-1)^3=1*[n^2+(n-1)^2+n(n-1)]
=n^2+(n-1)^2+n^2-n
=2*n^2+(n-1)^2-n
各等式全相加就得到咯。
⑤ 怎么用c语言编写n位数的平方和 要用递归算法 谢谢
int func(int val) {
return val>0? ((val%10)*(val%10)+func(val/10)) : 0 ;
}
从低位开始求...递归到高位...当val/10==0的时候递归结束..
写的略简洁..
⑥ C语言中的算法里,时间复杂度可以记为O(N平方)。字母O 表示什么
计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。
代表“order of ...”(……阶)的大 O,最初是一个大写的希腊字母希腊字母'Ο'(Omicron),现今用的是大写拉丁字母‘O’。
⑦ 1的平方+2的平方+。。。。n的平方的算法
1×1+2×2+3×3+……+n×n=n(n+1)(2n+1)/6
来历是:用完全立方公式和等差数列求和公式推导
因为:
(n+1)^3=n^3+3n^2+3n+1
在这个等式中,让依次取从1开始的n个连续的自然数,就得到n个相对应的等式,
2^3=1^3+3×1^2+3×1+1
3^3=2^3+3×2^2+3×2+1
4^3=3^3+3×3^2+3×3+1
………………
(n+1)^3=n^3+3n^2+3n+1
将这个等式中等号两边的式子分别加起来,划去等号两边相同的数,就得到,
(n+1)^3=1+3(1^2+2^2+3^2+……+n^2)+3(1+2+3+……+n)+n
第二个括号内的和就是一个等差数列,和为n(1+n)÷2,于是
(n+1)^3=1+3(1^2+2^2+3^2+……+n^2)+3n(n+1)÷2+n
所以,
3(1^2+2^2+3^2+……+n^2)=
(n+1)^3-3n(n+1)÷2-(n+1)
=n^3+3n^2+3n+1-3n^2/2-3n/2-n-1
=n^3+3/2n^2+n/2
所以,
1^2+2^2+3^2+……+n^2=1/3(n^3+3n^2/2+n/2)
=n(n+1)(2n+1)/6
⑧ 1的平方+2的平方+。。+N的平方,怎么算
好证:利用恒等式(n+1)^3=n^3+3n^2+3n+1,可以得到:
(n+1)^3-n^3=3n^2+3n+1,
n^3-(n-1)^3=3(n-1)^2+3(n-1)+1
..............................
3^3-2^3=3*(2^2)+3*2+1
2^3-1^3=3*(1^2)+3*1+1.
把这n个等式两端分别相加,得:
(n+1)^3-1=3(1^2+2^2+3^2+....+n^2)+3(1+2+3+...+n)+n,
由于1+2+3+...+n=(n+1)n/2,
代人上式得:
n^3+3n^2+3n=3(1^2+2^2+3^2+....+n^2)+3(n+1)n/2+n
整理后得:
1^2+2^2+3^2+....+n^2=n(n+1)(2n+1)/6
⑨ 设计一个O(n的平方)时间的算法,找出由n个数组成的序列的最长单调递增子序列
用冒泡法 时间复杂度=O(n^2)
以 下是c语言版
#include <stdio.h>
main()
{int a[10];
int i,c,j;
for(i=0;i<10;i++)
{printf("请输入十个数,这是第%d个:",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
for(j=10;j>i+1;j--)
{if(a[j-1]<a[j-2])
{c=a[j-1];
a[j-1]=a[j-2];
a[j-2]=c;
}
}
}
printf("从小到大的顺序是:");
for(i=0;i<10;i++)
{printf("\n%d",a[i]);
}
getch();
}
⑩ 算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)等是什么意思
算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,随着模块n的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高.
例:算法:
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
c[i][j]=0;//该步骤属于基本操作执行次数:n的平方次
for(k=1;k<=n;++k)
c[i][j]+=a[i][k]*b[k][j];//该步骤属于基本操作执行次数:n的三次方次
}
}
则有 T(n) = n 的平方+n的三次方,根据上面括号里的同数量级,我们可以确定 n的三次方 为T(n)的同数量级
则有 f(n) = n的三次方,然后根据 T(n)/f(n) 求极限可得到常数c
则该算法的时间复杂度:T(n) = O(n^3)