c语言数码平方和

  1. 存储K 和 样例(2维数组)

  2. 以行为单位,用循环判断 分类值=n 时 计数变量+1

  3. 输出各行计数变量


这中间没有什么不能用<stdio.h>做的?

㈡ 数码显示的C语言程序

你要是静态显示,那来就简单多了自:
#define SEG_Port P1//数码管段选口,默认位选长通
unsigned char SEG_B_List[]={0xc0,0xf9,0xa4}; //共阳数码管代码表0-2
if(Key1==0) SEG_Port=SEG_B_List[1];
else if(Key2==0) SEG_Port=SEG_B_List[2];
else SEG_Port=SEG_B_List[0];

你要是动态显示,那就多了,不过,就一位,无需动态显示。

㈢ C语言编程题如果一个十进制数的数码从左到右是先严格单调下降,然后严格单调上升,我们称这个数为凹数。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char num[1000001]={0};
int ber[1000001]={0};
int main()
{int n,i;
for(n=100;n<1000001;n++)
{int i=0;
itoa(n,num,10);
int len=strlen(num);
while(num[i]>num[i+1]&&i<len-1) i++;
if(i==len-1||i==0) continue;
while(num[i]<num[i+1]) i++;
if(i==len-1) ber[n]=1;
}
int N,a,b;
scanf("%d",&N);
while(N--)
{int count=0;
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++)
if(ber[i]) count++;
printf("%d\n",count);
}
}
//这个好像还是会超时,但是下面这个可以通过
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char num[1000001]={0};
int ber[1000001]={0};
int main()
{int n,c;
for(n=100;n<1000001;n++)
{int i=0;
itoa(n,num,10);
int len=strlen(num);
while(num[i]>num[i+1]&&i<len-1) i++;
if(i==len-1||i==0) continue;
while(num[i]<num[i+1]) i++;
if(i==len-1) ber[n]=1;
}
for(c=100;c<1000001;c++)
ber[c]+=ber[c-1];
int N,a,b;
scanf("%d",&N);
while(N--)
{
scanf("%d %d",&a,&b);
printf("%d\n",ber[b]-ber[a-1]);
}
}

㈣ 数码的个数 叫基 是什么意思 c语言简单小问题

所谓 基 就是该进制由多少个基本数组成 比如十进制 它的每一位数,由 0 1 2 3 4 5 6 7 8 9 十个数组成所有数都由专这些数组合属表示 ,基数为10 。
二进制 它的每一位数,由 0 1 两个数组成所有数都由这些数组合表示 ,基数为2 。
十六进制 它的每一位数,由 0 1 2 3 4 5 6 7 8 9 A B C D E F 这十六个数组成,所有数都由这些数组合表示 基数就是16。

㈤ c语言数码管显示问题

void display(int n)
{
char b3, b2, b1; //定义两个有符号整形数b3,b2和b1
b3=n/100;
b2=(n/10)%10;//这里应该这样才对不然会专大于属10的
b1=n%10;

//百位
P0=seg7[b3]; //
en3=0; //显示DS2
ms_delay(10); //延时
en3=1; //关闭DS2
//十位
P0=seg7[b2]; //
en2=0; //显示DS2
ms_delay(10); //延时
en2=1; //关闭DS2
//个位
P0=seg7[b1]; //
en1=0; //显示DS1
ms_delay(10); //延时
en1=1; //关闭DS1
}

㈥ c语言中怎么用英文表示一个数码

char ch='a';

int i=ch; /*这里i的值就是a的ascii值97*/
int j=ch-90;/*这里i的值就是7*/

㈦ C语言编程对输入的一个两位整数,输出各位数码

C语言编程对输入的一个两位整数,输出各位数码:
scanf("%d",&x);
printf("%d %d\n",x/10,x%10);

㈧ c语言数码管

#include <reg51.H>
#define uchar unsigned char
uchar code dispcode[]={0x78,0x69,0x39};
uchar i;
uchar a,b;

uchar temp; /*显示哪一位?*/

void delay2ms();
void main(void)

{
while(1)
{
temp=0x7f; /*显示第一位数码管复制(左到右)*/
for(i=0;i<4;i++)
{
P0=dispcode[i];
P2=temp; /*哪位显示,哪位P2口引脚为低*/
a=temp>>(i+1);
b=temp<<(7-i);
temp=a|b; /*显示下一位数码管*/
delay2ms(); /*调用延时程序5*/
}
}
}
/**********延时2ms****************/
void delay2ms(void)
{
for(a=4;a>0;a--)
for(b=248;b>0;b--);
}

㈨ C语言 数码平方和

提前把抄答案都算出来,然后查表,后续查找复杂度会比较小,楼主可以尝试下。例如:

intout[100001];
inti;
for(i=1;i<100001;i++)
{
intx=i;
intsum=0;
while(x){
sum+=(x%10)*(x%10);
sum%=10;
x/=10;
}
out[i]=sum;
}
intans=0;//存储结果
for(i=a;i<=b;i++)
{
if(out[i]==n)
++ans;
}

㈩ 求大神!!!c语言程序题目,怎么求一个整数的数码。

========================疑问================================
一个整数各个数码的平方和的个位数称为它的分类值
是下面的意思么?
123的分类值求法如下:
1*1+2*2+3*3=14,所以分类值为4.
另外这个输入格式:表达有点不清楚,是下面那种格式么?
第一行是一个整数K,表示样例的个数。每个样例占一行,为三个整数a,b,n(1<=a<=b<=100,000,0<=n<=9)。

输入格式如下:
2
1 5 2
2 9 3

========================程序===============================
按照上面的要求程序如下:
// shuma.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
//计算分类值
int cal_shuma(int num){
int each_num[6],n;//声明每个位数
int sum=0;
each_num[0]=num%10;//个位数
each_num[1]=(num/10)%10;//十位数
each_num[2]=(num/100)%10;//百位数
each_num[3]=(num/1000)%10;//千位数
each_num[4]=(num/10000)%10;//万位数
each_num[5]=(num/100000)%10;//十万位数
for (int i=0;i<6;i++)
sum+=each_num[i]*each_num[i];//计算平方和
n=sum%10;//计算分类值
return n;
}
//输入
void read_k(int *k){
FILE *fp;//声明指针
fp=fopen("para.txt","r");//打开参数文件para.txt
fscanf(fp,"%d",k);//读取样例个数
fclose(fp);//关闭文件
}
void read_para(int *a, int *b,int *n,int *k){
FILE *fp;//声明指针
fp=fopen("para.txt","r");//打开参数文件para.txt
fscanf(fp,"%d",k);//读取样例个数

//读取参数
for(int i=0;i<*k;i++){
fscanf(fp,"%d%d%d",&a[i],&b[i],&n[i]);//读取参数
}
fclose(fp);//关闭文件
}
//输出
void delete_file(){
FILE *fp_out;//声明指针
fp_out=fopen("output.txt","w");//打开文件
fclose(fp_out);//关闭文件
}
void output(int a,int b,int n,int count){
FILE *fp_out;//声明指针
fp_out=fopen("output.txt","a+");//打开文件
fprintf(fp_out,"%8d%8d%8d%8d\n",a,b,n,count);
fclose(fp_out);//关闭文件
}
int _tmain(int argc, _TCHAR* argv[])
{
//声明
int num,n0;//num为待求的整数,n0为求出的数码
int *a,*b,*n,k,count;//初始化参数
int a1,b1,n1;
int i,j;
//输入
read_k(&k);
delete_file();//删除所生成的文件
//动态声明内存
a=new int[k];
b=new int[k];
n=new int[k];
read_para(a,b,n,&k);
//计算
for (j=0,count=0;j<k;j++,count=0){
for (i=a[j];i<=b[j];i++){
n0=cal_shuma(i);//计算分类值
if(n0==n[j])//判断所求分类值是否为所需要的
count++;//统计所需要的证书的个数
}
//输出
output(a[j],b[j],n[j],count);
}
//清空内存
delete(a);
delete(b);
delete(n);
return 0;
}

===================输入文件para.txt示例:=================
2
25 300 5
25 900 5

===================输出文件output.txt示例:=================
25 300 5 30
25 900 5 88