发布网友 发布时间:2022-04-22 06:15
共5个回答
热心网友 时间:2023-11-18 06:30
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int GetNum(double n)
{
double dten = 10;
return (int)(pow(dten,n)-1) / 9;
}
int main(void)
{
int iTmp = 0,iRtn = 0,iShow = 0;
printf("请输入一个大于2小于10的数:");
scanf("%d",&iTmp);
if ((iTmp <= 2) || (iTmp >= 10))
{
printf("输入的数字%d无效",iTmp);
return 0;
}
iRtn = GetNum(iTmp);
printf("输出%d乘%d等于%d",iRtn,iRtn,iRtn*iRtn);
getchar();
return 0;
}
通项公式:(10^n-1)/9
热心网友 时间:2023-11-18 06:31
#include<stdio.h>
int main()
{
long long int a[7]={111,1111,11111,111111,1111111,11111111,111111111};
long long int res;
int n;
scanf("%d",&n);
printf("%lld",a[n-3]*a[n-3]);
}
我来写个不一样的
热心网友 时间:2023-11-18 06:31
#include <stdio.h>
#include <math.h>
__int getpow(int a,unsigned short b)
{
if(0 == a) return 0;
if(0 == b) return 1;
__int nRestult = 1 ;
for(;b != 0;b-=1)
nResult *= a;
return nResult;
}
int main()
{
printf("请输入2至10之间的数:");
int nBase = 0 ;
__int nAdded = 0,nNum = 0;
while(scanf("%d",&nBase))
{
if(nBase <2 || nBase > 10)
{
printf("请输入2至10之间的数:");
continue;
}
nAdded = 0,nNum = 0;
for(int i = 0; i < nBase ; i++)
nAdded += getpow(10,i);
nNum = nAdded*nAdded;
printf("resut is : %d\n\n",nNum);
printf("请输入2至10之间的数:"); // 记得给分哦,亲
}
return 0;
}
热心网友 时间:2023-11-18 06:32
#include <stdio.h>
long cal_sum(int n)
{
int num = 1;
if(n==0)
return 0;
while(n > 1)
{
num *= 10;
num += 1;
n--;
}
return num*num;
}
int main(void)
{
int number = 0;
char num[1024];
memset(num, 0, 1024);
printf("Please input one number <2-10>:\n");
gets(num);
number = atoi(num);
if(number <=2 || number >=10)
{
printf("error.\n");
return -1;
}
printf("%ld\n", cal_sum(number));
return 0;
}
当超过乘积大于32bit的最大值时,这个程序打印的结果是错误的。
热心网友 时间:2023-11-18 06:32
#include <stdio.h>
#include<math.h>
int main()
{
long int result=0;
int input;
scanf("%d",&input);
for(int i=0;i<input;i++)
result+=(long)pow(10,i);//得到111..11
printf("%ld\n",result*result);
return 0;
}
不明白再追问哈!