当前位置:首页 » 编程语言 » c语言求一个数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求一个数

发布时间: 2023-02-27 06:45:03

c语言编程问题 如何求一个数字的长度

#include<stdio.h>
#include<string.h>
voidmain()
{
intn;
charstr[50]={''};
printf("请输入一个多位数:");
gets_s(str);
n=strlen(str);
printf(" %d ",n);
}

运行示例:

② 有没有大神能指点c语言如何用自定义函数求一个数的位数 谢谢大神

#include <stdio.h>
int wei(int num)
{
    int n=1;
    while(num/10)
    {
        n++;
        num = num / 10;
    }
    return n;
}
int main()
{
    int a=100,b=1000,c=10000;
    printf("%d:%d %d:%d %d:%d ",a,wei(a),b,wei(b),c,wei(c));
    return 0;
}

③ 用c语言求一个数的所有因子

#include <stdio.h>

# include <stdlib.h>

#define N 100

long factor(int m,int fac[],int *cp){

int c1,c2,i,k;

long s;

fac[0]=1;

for(c1=s=1,c2=N-1,i=2;;){

k=m/i;

if(m%i==0){

if(i!=k){

fac[c1++]=i;

fac[c2--]=k;

s+=i+k;

printf("i=%d k=%d ",i,k);

}else{

fac[c1++]=i;

s+=i;

}

}

i++;

if(i>=k) break;//这个时候k已经开始等于自身的根号,或者将要出现和之前k对称的i,引起自身重复故退出

}

for(c2++;c2<=N-1;c2++){

fac[c1++]=fac[c2];

printf("%s %d ","**",fac[c2]);

}

*cp=c1;

return s;

}

int main(int argc, char const *argv[])

{

/* code */

int factors[N],i,count;

long sum;

sum = factor(atoi(argv[1]),factors,&count);

for(i=0;i<count;i++){

printf("%5d",factors[i]);

}

printf(" ");

printf("sum=%5ld count=%5d ",sum,count);

return 0;

}

(3)c语言求一个数扩展阅读:

有一种说法是“因子不限正负”,不过通常情况下只取正因子。

1, -1, n 和 -n 这些数叫做 n 的明显因子

表示方法:可以用因子|倍数或倍数≡0 (mod 因子) 来表达(参见同余),但用后者时因子一定要是正因子。因子∣倍数式中的垂直线是整除符号。它的统一码值是 U+2223。

例如 42=6x7,因此 7 是 42 的因子,写作 7∣42,亦是42≡0(mod 7)。



④ C语言求一个数是几位数

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{int x,w,i;
cout<<"输入一个数不多于5位";
cin>>x;
if (x>=99999||x<0)
{cout<<"error";
return 0;}
else if (x>=10000)
{w=5;cout<<x<<"是5位数";}
else if (x>=1000)
{w=4;cout<<x<<"是4位数";}
else if (x>=100)
{w=3;cout<<x<<"是3位数";}
else if (x>=10)
{w=2;cout<<x<<"是2位数";}
else
{w=1;cout<<x<<"是1位数";}
//////////////////////////
int a[5];
for (i=1;i<=w;i++)
{a[i-1]=x%10;
x=x/10;}
for (i=1;i<=w;i++)
{cout<<setw(5)<<a[w-i];}
cout<<endl;
//////////////////
int sm=0;
for (i=1;i<=w;i++)
{sm=sm*10+a[i-1];}
cout<<sm;
return 1;
}

⑤ c语言 求一个数的n次方

只需循环累乘即可。

#include<stdio.h>

doublepow(doublex,intn)
{
if(n==0)//为零则为1
return1;
doublenum=1;
while(n--)//循环累乘
num*=x;
returnnum;
}

intmain()
{
printf("%d^%d=%lf ",2,8,pow(2,8));
printf("%d^%d=%lf ",5,3,pow(5,3));
return0;
}

⑥ 求一个数是几位数的C语言程序

inta;
scanf("%d",&a);
intsum=0;//a的位数
if(!a)
sum=1;//0的位数是1
while(a){
a/=10;
++sum;
}
printf("%d",sum);