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